To support fault tolerant, we need to track task states and ensure the correct/allowed state transitions.
Here are the task states:
Here are the events taht trigger the state transition:
The state transition diagram is defined the the Fault Tolerant design doc. It is attached.