mongodb_v2

package
v0.16.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 8, 2022 License: Apache-2.0 Imports: 17 Imported by: 2

Documentation

Index

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) Load

func (s *EventStore) Load(ctx context.Context, id uuid.UUID) ([]eh.Event, error)

Load implements the Load method of the eventhorizon.EventStore interface.

func (*EventStore) LoadFrom added in v0.16.0

func (s *EventStore) LoadFrom(ctx context.Context, id uuid.UUID, version int) ([]eh.Event, error)

LoadFrom implements LoadFrom method of the eventhorizon.SnapshotStore interface.

func (*EventStore) LoadSnapshot added in v0.16.0

func (s *EventStore) LoadSnapshot(ctx context.Context, id uuid.UUID) (*eh.Snapshot, error)

func (*EventStore) RenameEvent

func (s *EventStore) RenameEvent(ctx context.Context, from, to eh.EventType) error

RenameEvent implements the RenameEvent method of the eventhorizon.EventStore interface.

func (*EventStore) Replace

func (s *EventStore) Replace(ctx context.Context, event eh.Event) error

Replace implements the Replace method of the eventhorizon.EventStore interface.

func (*EventStore) Save

func (s *EventStore) Save(ctx context.Context, events []eh.Event, originalVersion int) error

Save implements the Save method of the eventhorizon.EventStore interface.

func (*EventStore) SaveSnapshot added in v0.16.0

func (s *EventStore) SaveSnapshot(ctx context.Context, id uuid.UUID, snapshot eh.Snapshot) (err error)

type Option

type Option func(*EventStore) error

Option is an option setter used to configure creation.

func WithCollectionNames added in v0.15.0

func WithCollectionNames(eventsColl, streamsColl string) Option

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.

type SnapshotRecord added in v0.16.0

type SnapshotRecord struct {
	AggregateID   uuid.UUID        `bson:"aggregate_id"`
	RawData       []byte           `bson:"data"`
	Timestamp     time.Time        `bson:"timestamp"`
	Version       int              `bson:"version"`
	AggregateType eh.AggregateType `bson:"aggregate_type"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL