Struct dynamo_es::DynamoEventRepository
source · pub struct DynamoEventRepository { /* private fields */ }Expand description
An event repository relying on DynamoDb for persistence.
Implementations§
source§impl DynamoEventRepository
impl DynamoEventRepository
sourcepub fn new(client: Client) -> Self
pub fn new(client: Client) -> Self
Creates a new DynamoEventRepository from the provided dynamo client using default
table names.
use aws_sdk_dynamodb::Client;
use dynamo_es::DynamoEventRepository;
fn configure_repo(client: Client) -> DynamoEventRepository {
DynamoEventRepository::new(client)
}sourcepub fn with_streaming_channel_size(self, stream_channel_size: usize) -> Self
pub fn with_streaming_channel_size(self, stream_channel_size: usize) -> Self
Configures a DynamoEventRepository to use a streaming queue of the provided size.
Example: configure the repository to stream with a 1000 event buffer.
use aws_sdk_dynamodb::Client;
use dynamo_es::DynamoEventRepository;
fn configure_repo(client: Client) -> DynamoEventRepository {
let store = DynamoEventRepository::new(client);
store.with_streaming_channel_size(1000)
}sourcepub fn with_tables(self, event_table: &str, snapshot_table: &str) -> Self
pub fn with_tables(self, event_table: &str, snapshot_table: &str) -> Self
Configures a DynamoEventRepository to use the provided table names.
Example: configure the repository to use “my_event_table” and “my_snapshot_table” for the event and snapshot table names.
use aws_sdk_dynamodb::Client;
use dynamo_es::DynamoEventRepository;
fn configure_repo(client: Client) -> DynamoEventRepository {
let store = DynamoEventRepository::new(client);
store.with_tables("my_event_table", "my_snapshot_table")
}Trait Implementations§
source§impl PersistedEventRepository for DynamoEventRepository
impl PersistedEventRepository for DynamoEventRepository
source§fn get_events<'life0, 'life1, 'async_trait, A>(
&'life0 self,
aggregate_id: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<Vec<SerializedEvent>, PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn get_events<'life0, 'life1, 'async_trait, A>(
&'life0 self,
aggregate_id: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<Vec<SerializedEvent>, PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Returns all events for a single aggregate instance.
source§fn get_last_events<'life0, 'life1, 'async_trait, A>(
&'life0 self,
aggregate_id: &'life1 str,
number_events: usize
) -> Pin<Box<dyn Future<Output = Result<Vec<SerializedEvent>, PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn get_last_events<'life0, 'life1, 'async_trait, A>(
&'life0 self,
aggregate_id: &'life1 str,
number_events: usize
) -> Pin<Box<dyn Future<Output = Result<Vec<SerializedEvent>, PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Returns the last events for a single aggregate instance.
source§fn get_snapshot<'life0, 'life1, 'async_trait, A>(
&'life0 self,
aggregate_id: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<Option<SerializedSnapshot>, PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn get_snapshot<'life0, 'life1, 'async_trait, A>(
&'life0 self,
aggregate_id: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<Option<SerializedSnapshot>, PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Returns the current snapshot for an aggregate instance.
source§fn persist<'life0, 'life1, 'async_trait, A>(
&'life0 self,
events: &'life1 [SerializedEvent],
snapshot_update: Option<(String, Value, usize)>
) -> Pin<Box<dyn Future<Output = Result<(), PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn persist<'life0, 'life1, 'async_trait, A>(
&'life0 self,
events: &'life1 [SerializedEvent],
snapshot_update: Option<(String, Value, usize)>
) -> Pin<Box<dyn Future<Output = Result<(), PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Commits the updated aggregate and accompanying events.
source§fn stream_events<'life0, 'life1, 'async_trait, A>(
&'life0 self,
aggregate_id: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<ReplayStream, PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn stream_events<'life0, 'life1, 'async_trait, A>(
&'life0 self,
aggregate_id: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<ReplayStream, PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Streams all events for an aggregate instance.
source§fn stream_all_events<'life0, 'async_trait, A>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<ReplayStream, PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
Self: 'async_trait,
fn stream_all_events<'life0, 'async_trait, A>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<ReplayStream, PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
Self: 'async_trait,
Streams all events for an aggregate type.