Skip to main content
Table of Contents

Namespace Stratara.Sagas.Abstractions

Classes

SagaProcess<TState>

A saga with state, correlation and timeouts — the additional interface the stateless ISaga contract is left untouched for. The state is an aggregate of the process's own: it lives in an event stream keyed by the process and its correlation, is rebuilt by folding that stream, and changes only through the events the process emits. A timeout is a durable, owner-checked timer whose owner is the process; when the process completes, its timers go with it.

Interfaces

ISaga

Marker interface for a Stratara saga (a process manager that reacts to events flowing through the event bundle). Implementations declare one or more HandleAsync(TEvent, CancellationToken) methods — public or private — that the SagaMethodInvoker discovers via reflection.

ISagaHandler

Dispatcher that drives a single ISaga through a list of events, using the ISagaMethodInvoker to look up cached handler delegates.

ISagaManager

Fans an incoming event bundle out to every registered ISaga in parallel and runs the per-saga dispatch via ISagaHandler.

ISagaMethodInvoker

Reflection-cache facade that discovers HandleAsync methods on a saga and creates compiled delegates the dispatch can call. Implementations are expected to memoize lookups for process lifetime.

ISagaProcess

The untyped face of SagaProcess<TState> the runtime works with.

ISagaProcessContext

Collects what a process step produces: state events to append and timeouts to schedule or cancel.

ISagaProcessState

What a process state must say about itself: whether the process is over.