Expand description
State persistence and recovery for LLM workflow orchestrator.
This crate provides database-backed state management for workflows with support for:
- Workflow state persistence (PostgreSQL and SQLite)
- Automatic checkpointing for recovery
- Connection pooling and transactions
- Workflow resumption after crashes
§Examples
§PostgreSQL
// Create PostgreSQL state store
let store = PostgresStateStore::new(
"postgresql://user:pass@localhost/workflows",
Some(5), // min connections
Some(20), // max connections
).await?;
// Create workflow state
let state = WorkflowState::new(
"my-workflow",
"My Workflow",
Some("user-123".to_string()),
json!({"inputs": {"key": "value"}}),
);
// Save state
store.save_workflow_state(&state).await?;
// Load state
let loaded = store.load_workflow_state(&state.id).await?;§SQLite
// Create SQLite state store
let store = SqliteStateStore::new("./workflows.db").await?;
// Use same API as PostgreSQL
store.health_check().await?;Re-exports§
pub use models::Checkpoint;pub use models::StepState;pub use models::StepStatus;pub use models::WorkflowState;pub use models::WorkflowStatus;pub use postgres::PostgresStateStore;pub use sqlite::SqliteStateStore;pub use traits::StateStore;pub use traits::StateStoreError;pub use traits::StateStoreResult;
Modules§
- models
- Data models for workflow state persistence.
- postgres
- PostgreSQL implementation of the StateStore trait.
- sqlite
- SQLite implementation of the StateStore trait.
- traits
- Traits for state persistence.
Constants§
- VERSION
- Library version.