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,
Self: 'async_trait,
'life0: 'async_trait,
'life1: '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,
Self: 'async_trait,
'life0: 'async_trait,
'life1: '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,
Self: 'async_trait,
'life0: 'async_trait,
'life1: '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,
Self: 'async_trait,
'life0: 'async_trait,
'life1: '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,
Self: 'async_trait,
'life0: 'async_trait,
'life1: '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,
Self: 'async_trait,
'life0: 'async_trait,
'life1: '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,
Self: 'async_trait,
'life0: 'async_trait,
'life1: '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,
Self: 'async_trait,
'life0: 'async_trait,
'life1: '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,
Self: 'async_trait,
'life0: 'async_trait,
'life1: '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,
Self: 'async_trait,
'life0: 'async_trait,
'life1: '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,
Self: 'async_trait,
'life0: '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,
Self: 'async_trait,
'life0: 'async_trait,
Streams all events for an aggregate type.
Auto Trait Implementations§
impl Freeze for DynamoEventRepository
impl !RefUnwindSafe for DynamoEventRepository
impl Send for DynamoEventRepository
impl Sync for DynamoEventRepository
impl Unpin for DynamoEventRepository
impl !UnwindSafe for DynamoEventRepository
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreCreates a shared type from an unshared type.