Documentation ¶
Index ¶
- type EventStore
- func (s *EventStore) Clear(ctx context.Context) error
- func (s *EventStore) Close() error
- func (s *EventStore) EventsCollectionName() string
- func (s *EventStore) Load(ctx context.Context, id uuid.UUID) ([]eh.Event, error)
- func (s *EventStore) LoadFrom(ctx context.Context, id uuid.UUID, version int) ([]eh.Event, error)
- func (s *EventStore) RenameEvent(ctx context.Context, from, to eh.EventType) error
- func (s *EventStore) Replace(ctx context.Context, event eh.Event) error
- func (s *EventStore) Save(ctx context.Context, events []eh.Event, originalVersion int) error
- type Option
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type EventStore ¶
type EventStore struct {
// contains filtered or unexported fields
}
EventStore implements an eventhorizon.EventStore for MongoDB using a single collection with one document per aggregate/stream which holds its events as values.
func NewEventStore ¶
func NewEventStore(uri, dbName string, options ...Option) (*EventStore, error)
NewEventStore creates a new EventStore with a MongoDB URI: `mongodb://hostname`.
func NewEventStoreWithClient ¶ added in v0.18.0
func NewEventStoreWithClient(client *mongo.Client, dbName string, options ...Option) (*EventStore, error)
NewEventStoreWithClient creates a new EventStore with a client.
func NewMongoDBEventStore ¶ added in v0.18.0
func NewMongoDBEventStore(db eh.MongoDB, options ...Option) (*EventStore, error)
NewMongoDBEventStore creates a new EventStore using the eventhorizon.MongoDB interface.
func (*EventStore) Clear ¶
func (s *EventStore) Clear(ctx context.Context) error
Clear implements the Clear method of the eventhorizon.EventStoreMaintenance interface.
func (*EventStore) Close ¶
func (s *EventStore) Close() error
Close implements the Close method of the eventhorizon.EventStore interface.
func (*EventStore) EventsCollectionName ¶ added in v0.18.0
func (s *EventStore) EventsCollectionName() string
EventsCollectionName returns the name of the events collection.
func (*EventStore) LoadFrom ¶ added in v0.18.0
LoadFrom loads all events from version for the aggregate id from the store.
func (*EventStore) RenameEvent ¶
RenameEvent implements the RenameEvent method of the eventhorizon.EventStoreMaintenance interface.
type Option ¶ added in v0.18.0
type Option func(*EventStore) error
Option is an option setter used to configure creation.
func WithCollectionName ¶ added in v0.18.0
WithCollectionName uses a different event collection than the default "events".
func WithEventHandler ¶ added in v0.18.0
func WithEventHandler(h eh.EventHandler) Option
WithEventHandler adds an event handler that will be called after saving events. An example would be to add an event bus to publish events.
func WithEventHandlerInTX ¶ added in v0.18.0
func WithEventHandlerInTX(h eh.EventHandler) Option
WithEventHandlerInTX adds an event handler that will be called during saving of events. An example would be to add an outbox to further process events. For an outbox to be atomic it needs to use the same transaction as the save operation, which is passed down using the context.