Namespace Stratara.Sagas.Abstractions
Classes
- SagaProcess<TState>
A saga with state, correlation and timeouts — the additional interface the stateless
ISagacontract 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 theSagaMethodInvokerdiscovers 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
HandleAsyncmethods 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.