# aion-store
Persistence contracts and in-memory event stores for Aion durable workflows. The crate defines the async event-store traits that engines use for history, run-chain summaries, timers, and visibility, plus a correct non-durable `InMemoryStore` implementation for tests and local development.
## Install
```toml
[dependencies]
aion-store = "0.4.0"
```
## Key public types
- `ReadableEventStore`, `WritableEventStore`, and `EventStore` define the persistence contract.
- `WriteToken` provides optimistic append fencing for workflow histories.
- `RunSummary` and `TimerEntry` describe persisted run and timer state.
- `VisibilityStore`, `VisibilityRecord`, and `ListWorkflowsFilter` model workflow search.
- `InMemoryStore` is the reference in-memory implementation.
## Minimal usage
```rust
use aion_store::{InMemoryStore, ReadableEventStore, WorkflowId};
let store = InMemoryStore::default();
let workflow_id = WorkflowId::new_v4();
let history = store.read_history(&workflow_id).await?;
assert!(history.is_empty());
# Ok::<(), Box<dyn std::error::Error>>(())
```