driver

package
v0.1.2 Latest Latest
Warning

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

Go to latest
Published: Oct 1, 2023 License: BSD-3-Clause Imports: 3 Imported by: 0

Documentation

Overview

package driver defines interfaces to be used by driver implementations.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GenerateStreamIDs

func GenerateStreamIDs(first, last uint64, after, count int64) ([]uint64, error)

Types

type Driver

type Driver interface {
	Open(ctx context.Context, dsn string) (Driver, error)
	EventLog(ctx context.Context, streamID string) (EventLog, error)
}

type EventLog

type EventLog interface {
	Read(ctx context.Context, after, count int64) (event.Events, error)
	ReadN(ctx context.Context, index ...uint64) (event.Events, error)
	Append(ctx context.Context, events event.Events, version uint64) (uint64, error)
	FirstIndex(context.Context) (uint64, error)
	LastIndex(context.Context) (uint64, error)
}

type EventLogWithTruncate

type EventLogWithTruncate interface {
	Truncate(context.Context, int64) error
}

type EventLogWithUpdate

type EventLogWithUpdate interface {
	LoadForUpdate(context.Context, event.Aggregate, func(context.Context, event.Aggregate) error) (uint64, error)
}

type EventStream

type EventStream interface {
	Subscribe(ctx context.Context, streamID string, start int64) (Subscription, error)
	Send(ctx context.Context, streamID string, events event.Events) error
}

type Subscription

type Subscription interface {
	Recv(context.Context) <-chan bool
	Events(context.Context) (event.Events, error)
	Close(context.Context) error
}

Directories

Path Synopsis
package memstore provides a driver that reads and writes events to memory.
package memstore provides a driver that reads and writes events to memory.
package projecter provides a driver middleware to derive new events from other events.
package projecter provides a driver middleware to derive new events from other events.
package streamer provides a driver to allow awaiting for new events to be added to a stream.
package streamer provides a driver to allow awaiting for new events to be added to a stream.

Jump to

Keyboard shortcuts

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