postgresengine

package
v1.1.0-beta Latest Latest
Warning

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

Go to latest
Published: Jul 29, 2025 License: GPL-3.0 Imports: 12 Imported by: 0

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
}

func NewEventStoreFromPGXPool

func NewEventStoreFromPGXPool(db *pgxpool.Pool, options ...Option) (EventStore, error)

NewEventStoreFromPGXPool creates a new EventStore using a pgx Pool with optional configuration

func NewEventStoreFromSQLDB

func NewEventStoreFromSQLDB(db *sql.DB, options ...Option) (EventStore, error)

NewEventStoreFromSQLDB creates a new EventStore using a sql.DB with optional configuration

func NewEventStoreFromSQLX

func NewEventStoreFromSQLX(db *sqlx.DB, options ...Option) (EventStore, error)

NewEventStoreFromSQLX creates a new EventStore using a sqlx.DB with optional configuration

func (EventStore) Append

func (es EventStore) Append(
	ctx context.Context,
	filter eventstore.Filter,
	expectedMaxSequenceNumber eventstore.MaxSequenceNumberUint,
	event eventstore.StorableEvent,
	additionalEvents ...eventstore.StorableEvent,
) error

Append attempts to append one or multiple eventstore.StorableEvent(s) onto the Postgres event store respecting concurrency constraints for this "dynamic event stream" based on the provided eventstore.Filter criteria and the expected MaxSequenceNumberUint.

The provided eventstore.Filter criteria should be the same as the ones used for the Query before making the business decisions.

The insert query to append multiple events atomically is heavier than the one built to append a single event. In event-sourced applications, one command/request should typically only produce one event. Only supply multiple events if you are sure that you need to append multiple events at once!

func (EventStore) Query

Query retrieves events from the Postgres event store based on the provided eventstore.Filter criteria and returns them as eventstore.StorableEvents as well as the MaxSequenceNumberUint for this "dynamic event stream" at the time of the query.

type Option

type Option func(*EventStore) error

Option defines a functional option for configuring EventStore

func WithTableName

func WithTableName(tableName string) Option

WithTableName sets the table name for the EventStore

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

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