stasis-rs 0.7.0

Durable AI orchestration framework with runtime jobs, lineage, and memory integration
Documentation
use async_trait::async_trait;

use crate::domain::errors::Result;
use crate::ports::outbound::memory::memory_models::{
    MemoryAggregateRequest, MemoryAggregateResponse, MemoryEvictRequest, MemoryEvictResponse,
    MemoryRollupRequest, MemoryRollupResponse, MemorySchemaResponse, MemoryTransformRequest,
    MemoryTransformResponse,
};

#[async_trait]
pub trait MemoryOperations: Send + Sync {
    async fn aggregate(&self, request: &MemoryAggregateRequest) -> Result<MemoryAggregateResponse>;

    async fn transform(&self, request: &MemoryTransformRequest) -> Result<MemoryTransformResponse>;

    async fn rollup(&self, request: &MemoryRollupRequest) -> Result<MemoryRollupResponse>;

    async fn schema(&self) -> Result<MemorySchemaResponse>;

    async fn evict(&self, request: &MemoryEvictRequest) -> Result<MemoryEvictResponse>;
}