Struct postgres_es::PostgresSnapshotStore [−][src]
pub struct PostgresSnapshotStore<A: Aggregate> { /* fields omitted */ }
Expand description
Storage engine using an Postgres backing and relying on a serialization of the aggregate rather than individual events. This is similar to the “snapshot strategy” seen in many CQRS frameworks.
Implementations
Creates a new PostgresSnapshotStore
from the provided database connection.
Trait Implementations
impl<A: Aggregate> EventStore<A, PostgresSnapshotStoreAggregateContext<A>> for PostgresSnapshotStore<A>
impl<A: Aggregate> EventStore<A, PostgresSnapshotStoreAggregateContext<A>> for PostgresSnapshotStore<A>
Load all events for a particular aggregate_id
Load aggregate at current state
fn commit(
&self,
events: Vec<A::Event>,
context: PostgresSnapshotStoreAggregateContext<A>,
metadata: HashMap<String, String>
) -> Result<Vec<EventEnvelope<A>>, AggregateError>
fn commit(
&self,
events: Vec<A::Event>,
context: PostgresSnapshotStoreAggregateContext<A>,
metadata: HashMap<String, String>
) -> Result<Vec<EventEnvelope<A>>, AggregateError>
Commit new events
fn wrap_events(
&self,
aggregate_id: &str,
current_sequence: usize,
resultant_events: Vec<<A as Aggregate>::Event, Global>,
base_metadata: HashMap<String, String, RandomState>
) -> Vec<EventEnvelope<A>, Global>
fn wrap_events(
&self,
aggregate_id: &str,
current_sequence: usize,
resultant_events: Vec<<A as Aggregate>::Event, Global>,
base_metadata: HashMap<String, String, RandomState>
) -> Vec<EventEnvelope<A>, Global>
Method to wrap a set of events with the additional metadata needed for persistence and publishing