eventsio

package
v0.0.0-...-14b8f79 Latest Latest
Warning

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

Go to latest
Published: Aug 27, 2025 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Codec

type Codec interface {
	Encode(event es.Event) ([]byte, error)
	Decode(streamType, contentName string, b []byte) (es.Content, error)
	Register(streamType string, contentTypes ...es.Content) error
}

type Connector

type Connector interface {
	AcquireReadStream(ctx context.Context, streamType, streamID string) (*pgxpool.Conn, error)
}

type Reader

type Reader struct {
	// contains filtered or unexported fields
}

func NewReader

func NewReader(connector Connector, schema Schema, codec Codec) *Reader

func (*Reader) Read

func (rd *Reader) Read(ctx context.Context, streamType, streamID string, eventNumber int64) iter.Seq2[es.Event, error]

type Schema

type Schema interface {
	WriteEvent(ctx context.Context, db dbtx.DBTX, event es.Event, content, metadata []byte) error
	InsertOutbox(ctx context.Context, tx dbtx.DBTX, streamType, streamID, storeStreamID string, eventNumber, watermark int64, partition uint32) (int64, error)
	UpdateOutbox(ctx context.Context, tx dbtx.DBTX, streamType, streamID string, eventNumber, lastEventNumber int64) (int64, error)
	SelectEvents(ctx context.Context, db dbtx.DBTX, streamType string, streamID string, eventNumber int64) (pgx.Rows, error)
	Notify(ctx context.Context, db dbtx.DBTX, partition uint32, payload string) error
}

type Validator

type Validator interface {
	Validate(streamType string, events iter.Seq2[es.Event, error]) iter.Seq2[es.Event, error]
}

type ValidatorFunc

type ValidatorFunc func(streamType string, events iter.Seq2[es.Event, error]) iter.Seq2[es.Event, error]

func NewValidator

func NewValidator() ValidatorFunc

func (ValidatorFunc) Validate

func (fn ValidatorFunc) Validate(streamType string, events iter.Seq2[es.Event, error]) iter.Seq2[es.Event, error]

type Writer

type Writer struct {
	// contains filtered or unexported fields
}

func NewWriter

func NewWriter(schema Schema, validator Validator, codec Codec, partitioner func(streamType, streamID string) uint32) *Writer

func (*Writer) Write

func (w *Writer) Write(ctx context.Context, db dbtx.DBTX, streamType string, events iter.Seq2[es.Event, error]) error

Jump to

Keyboard shortcuts

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