Documentation ¶
Index ¶
- type EventStore
- func (s *EventStore) Clear(ctx context.Context) error
- func (s *EventStore) Close() error
- 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) LoadSnapshot(ctx context.Context, id uuid.UUID) (*eh.Snapshot, 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
- func (s *EventStore) SaveSnapshot(ctx context.Context, id uuid.UUID, snapshot eh.Snapshot) (err error)
- type Option
- type SnapshotRecord
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 is an eventhorizon.EventStore for MongoDB, using one collection for all events and another to keep track of all aggregates/streams. It also keep tracks of the global position of events, stored as metadata.
func NewEventStore ¶
func NewEventStore(uri, dbName string, options ...Option) (*EventStore, error)
NewEventStore creates a new EventStore with a MongoDB URI: `mongodb://hostname`.
func NewEventStoreWithClient ¶
func NewEventStoreWithClient(client *mongo.Client, dbName string, options ...Option) (*EventStore, error)
NewEventStoreWithClient creates a new EventStore with a client.
func (*EventStore) Clear ¶
func (s *EventStore) Clear(ctx context.Context) error
Clear clears the event storage.
func (*EventStore) Close ¶
func (s *EventStore) Close() error
Close implements the Close method of the eventhorizon.EventStore interface.
func (*EventStore) LoadFrom ¶ added in v0.16.0
LoadFrom implements LoadFrom method of the eventhorizon.SnapshotStore interface.
func (*EventStore) LoadSnapshot ¶ added in v0.16.0
func (*EventStore) RenameEvent ¶
RenameEvent implements the RenameEvent method of the eventhorizon.EventStore interface.
func (*EventStore) Replace ¶
Replace implements the Replace method of the eventhorizon.EventStore interface.
func (*EventStore) SaveSnapshot ¶ added in v0.16.0
type Option ¶
type Option func(*EventStore) error
Option is an option setter used to configure creation.
func WithCollectionNames ¶ added in v0.15.0
WithCollectionNames uses different collections from the default "events" and "streams" collections. Will return an error if provided parameters are equal.
func WithEventHandler ¶
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.15.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.