You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

The current ACM state machine works but it is incosistent in the way it handles error states or failed transitions. A composition and its elements can get "stuck" in transition states.

We need to

  • Specify what the current state machine is for both compositions and elements and describe what the state machine for both should be
  • Specify what the behaviour of the runtime and participants should be in each state
  • Specify what the behaviour should be for the runtime and participants should be in transitions

Specifically we need to clarify:

  • State of the composition elements
  • State of the overall composition is derived from the composition element states
  • Admin state/Running state
  • When all the elements are fully up and configured, the go to state Passive, when all elements are in Passive, the full composition goes to Passive
  • Error states: Are they parallel sates or part of the same state?
  • There should “it didn’t work” states like “Passive-Error” or “Run_Error” (names to be decided later)
  • Describe what the “Running” state means and what the participant should do in Passive->Running and Running->Passive transitions.
  • Say a K8S service crashes, how do we feed that back? Running_Error. The state of the POD is only checked during startup. It is not periodically checked. There should be supervision.

State Machine for Automation Compositions

Current State Machine

TBC

Proposed State Machine

UNINITIALIZED UNINITIALIZED_TO_PASSIVE PASSIVE_TO_UNINITIALIZED PASSIVE PASSIVE_TO_RUNNING RUNNING_TO_PASSIVE RUNNING RUNNING_TO_PASSIVE_ERROR PASSIVE_TO_RUNNING_ERROR RUN_ERROR

State Machine for Automation Composition Elements

Current State Machine

TBC

Proposed State Machine

UNINITIALIZED UNINITIALIZED_TO_PASSIVE PASSIVE_TO_UNINITIALIZED PASSIVE PASSIVE_TO_RUNNING RUNNING_TO_PASSIVE RUNNING RUNNING_TO_PASSIVE_ERROR PASSIVE_TO_RUNNING_ERROR RUN_ERROR


  • No labels