Skip to main content

Storage

Trait Storage 

Source
pub trait Storage: Send + Sync {
Show 14 methods // Required methods fn health_check(&self) -> Result<()>; fn write_state(&self, record: StateRecord) -> Result<()>; fn read_state(&self, record_id: &RecordId) -> Result<Option<StateRecord>>; fn read_state_at_version( &self, record_id: &RecordId, version: Version, ) -> Result<Option<StateRecord>>; fn list_keys(&self, namespace: &str, agent_id: &str) -> Result<Vec<String>>; fn scan_prefix( &self, namespace: &str, agent_id: &str, prefix: &str, ) -> Result<Vec<StateRecord>>; fn append_event(&self, event: EventLogEntry) -> Result<()>; fn replay_events( &self, namespace: &str, agent_id: &str, start_ts: Option<CommitTs>, end_ts: Option<CommitTs>, ) -> Result<Vec<EventLogEntry>>; fn next_commit_ts(&self) -> Result<CommitTs>; fn flush(&self) -> Result<()>; fn create_snapshot(&self) -> Result<Snapshot>; fn save_snapshot(&self, snapshot: &Snapshot) -> Result<()>; fn load_snapshot(&self) -> Result<Option<Snapshot>>; fn get_all_state(&self) -> Result<Vec<StateRecord>>;
}
Expand description

Storage abstraction for Statehouse

Required Methods§

Source

fn health_check(&self) -> Result<()>

Health check

Source

fn write_state(&self, record: StateRecord) -> Result<()>

Write a state record

Source

fn read_state(&self, record_id: &RecordId) -> Result<Option<StateRecord>>

Read a state record

Source

fn read_state_at_version( &self, record_id: &RecordId, version: Version, ) -> Result<Option<StateRecord>>

Read state at specific version

Source

fn list_keys(&self, namespace: &str, agent_id: &str) -> Result<Vec<String>>

List all keys for an agent

Source

fn scan_prefix( &self, namespace: &str, agent_id: &str, prefix: &str, ) -> Result<Vec<StateRecord>>

Scan keys with prefix

Source

fn append_event(&self, event: EventLogEntry) -> Result<()>

Append event to log

Source

fn replay_events( &self, namespace: &str, agent_id: &str, start_ts: Option<CommitTs>, end_ts: Option<CommitTs>, ) -> Result<Vec<EventLogEntry>>

Replay events for an agent

Source

fn next_commit_ts(&self) -> Result<CommitTs>

Get next commit timestamp

Source

fn flush(&self) -> Result<()>

Flush writes to disk

Source

fn create_snapshot(&self) -> Result<Snapshot>

Create a snapshot of current state

Source

fn save_snapshot(&self, snapshot: &Snapshot) -> Result<()>

Save snapshot to disk

Source

fn load_snapshot(&self) -> Result<Option<Snapshot>>

Load latest snapshot from disk

Source

fn get_all_state(&self) -> Result<Vec<StateRecord>>

Get all state records (for snapshotting)

Implementors§