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§
Sourcefn health_check(&self) -> Result<()>
fn health_check(&self) -> Result<()>
Health check
Sourcefn write_state(&self, record: StateRecord) -> Result<()>
fn write_state(&self, record: StateRecord) -> Result<()>
Write a state record
Sourcefn read_state(&self, record_id: &RecordId) -> Result<Option<StateRecord>>
fn read_state(&self, record_id: &RecordId) -> Result<Option<StateRecord>>
Read a state record
Sourcefn read_state_at_version(
&self,
record_id: &RecordId,
version: Version,
) -> Result<Option<StateRecord>>
fn read_state_at_version( &self, record_id: &RecordId, version: Version, ) -> Result<Option<StateRecord>>
Read state at specific version
Sourcefn list_keys(&self, namespace: &str, agent_id: &str) -> Result<Vec<String>>
fn list_keys(&self, namespace: &str, agent_id: &str) -> Result<Vec<String>>
List all keys for an agent
Sourcefn scan_prefix(
&self,
namespace: &str,
agent_id: &str,
prefix: &str,
) -> Result<Vec<StateRecord>>
fn scan_prefix( &self, namespace: &str, agent_id: &str, prefix: &str, ) -> Result<Vec<StateRecord>>
Scan keys with prefix
Sourcefn append_event(&self, event: EventLogEntry) -> Result<()>
fn append_event(&self, event: EventLogEntry) -> Result<()>
Append event to log
Sourcefn replay_events(
&self,
namespace: &str,
agent_id: &str,
start_ts: Option<CommitTs>,
end_ts: Option<CommitTs>,
) -> Result<Vec<EventLogEntry>>
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
Sourcefn next_commit_ts(&self) -> Result<CommitTs>
fn next_commit_ts(&self) -> Result<CommitTs>
Get next commit timestamp
Sourcefn create_snapshot(&self) -> Result<Snapshot>
fn create_snapshot(&self) -> Result<Snapshot>
Create a snapshot of current state
Sourcefn save_snapshot(&self, snapshot: &Snapshot) -> Result<()>
fn save_snapshot(&self, snapshot: &Snapshot) -> Result<()>
Save snapshot to disk
Sourcefn load_snapshot(&self) -> Result<Option<Snapshot>>
fn load_snapshot(&self) -> Result<Option<Snapshot>>
Load latest snapshot from disk
Sourcefn get_all_state(&self) -> Result<Vec<StateRecord>>
fn get_all_state(&self) -> Result<Vec<StateRecord>>
Get all state records (for snapshotting)