Skip to content

Release v1.11.0

Choose a tag to compare

@github-actions github-actions released this 27 Sep 20:54
16c61c8

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 protected CanTransitionTo(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).