projection

package
v0.14.0 Latest Latest
Warning

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

Go to latest
Published: Mar 26, 2024 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package projection provides engine components that handle messages that are routed to projection message handlers.

Index

Constants

View Source
const CompactInterval = 1 * time.Hour

CompactInterval is how frequently projections should be compacted.

This interval respects the current engine time, which may not be the same as the "real world" time. See engine.RunTimeScaled().

Variables

This section is empty.

Functions

This section is empty.

Types

type Controller

type Controller struct {
	Config                configkit.RichProjection
	CompactDuringHandling bool
	// contains filtered or unexported fields
}

Controller is an implementation of engine.Controller for dogma.ProjectionMessageHandler implementations.

func (*Controller) Handle

func (c *Controller) Handle(
	ctx context.Context,
	obs fact.Observer,
	now time.Time,
	env *envelope.Envelope,
) ([]*envelope.Envelope, error)

Handle handles a message.

func (*Controller) HandlerConfig

func (c *Controller) HandlerConfig() configkit.RichHandler

HandlerConfig returns the config of the handler that is managed by this controller.

func (*Controller) Reset

func (c *Controller) Reset()

Reset does nothing.

func (*Controller) Tick

func (c *Controller) Tick(
	ctx context.Context,
	obs fact.Observer,
	now time.Time,
) ([]*envelope.Envelope, error)

Tick always performs projection compaction.

Jump to

Keyboard shortcuts

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