Repository navigation
Release v1.11.0
Added
Cratis.Orleans.StateMachines: the generic Orleans state machine, extracted from Chronicle with the same behavior —StateMachine<TStoredState>,State<TStoredState>,IState<TStoredState>,IStateMachine<TStoredState>,NoOpState,StateMachineState, allowed transitions,OnEnter/OnLeave, and transitions scheduled while entering (#33)- A protected
StateMachine(IStorage<TStoredState>)constructor, so a derived state machine can supply its own storage without a[StorageProvider]attribute (#33) ResolveActivationState()lets a derived state machine decide which state to enter on activation, and the protectedCanTransitionTo(Type)/TransitionTo(Type)allow transitions by type while still honoring each state's rules (#33)
The state machine has no dependency on Chronicle or event sourcing. Validation: all 48 specs ported from Chronicle pass unchanged, alongside 29 new specs for the extension points (300 total).