diff --git a/packages/async-flow/docs/async-flow-states.key b/packages/async-flow/docs/async-flow-states.key index 50239a536c0e..5b22a7e89a1d 100755 Binary files a/packages/async-flow/docs/async-flow-states.key and b/packages/async-flow/docs/async-flow-states.key differ diff --git a/packages/async-flow/docs/async-flow-states.md b/packages/async-flow/docs/async-flow-states.md index dbfa1aae08dc..c4db4befefbd 100644 --- a/packages/async-flow/docs/async-flow-states.md +++ b/packages/async-flow/docs/async-flow-states.md @@ -10,6 +10,7 @@ - ***Replaying***. To start ***Replaying***, the activation first translates the saved activation arguments from host to guest, invokes the guest function, and starts the membrane replaying from its durable log. The replay is finished when the last log entry has been replayed. Once replaying is finished, the activation has caught up and transitions back to ***Running***. -- ***Failed***. If during the ***Replaying*** state the guest activation fails to exactly reproduce its previously logged behavior, it goes into the inactive ***Failed*** state, with a diagnostic explaining how the replay failed, so it can be repaired by another future upgrade. As of the next reincarnation, the failure status is cleared and it starts ***Replaying*** again, hoping not to fail this time. If replay failed because the guest async function did not reproduce its previous behavior, then the upgrade needs to replace the function with one which does. If the replay failed because of a failure of the `asyncFlow` mechanism, whether a bug or merely hitting a case that is not yet implemented, then the upgrade needs to replace the relevant part of `asyncFlow`'s mechanism. +- ***Failed***. If during the ***Replaying*** state the guest activation fails to exactly reproduce its previously logged behavior, it goes into the inactive ***Failed*** state, with a diagnostic explaining how the replay failed, so it can be repaired by another future upgrade. As of the next reincarnation, the failure status is cleared and it starts ***Replaying*** again, hoping not to fail this time. If replay failed because the guest async function did not reproduce its previous behavior, then the upgrade needs to replace the function with one which does. If a ***Replaying*** or ***Running*** guest failed because of a failure of the `asyncFlow` mechanism, whether a bug or merely hitting a case that is not yet implemented, then an upgrade needs to replace the relevant part of the `asyncFlow`'s mechanism. - ***Done***. The guest async function invocation returned a promise for its eventual outcome. Once that promise settles, we assume that the job of the guest activation is done. It then goes into a durably ***Done*** state, dropping all its bookkeeping beyond just remembering the corresponding settled outcome vow, and that it is ***Done***. The replay logs and membrane state of this activation are dropped, to be garbage collected. + \ No newline at end of file diff --git a/packages/async-flow/docs/async-flow-states.png b/packages/async-flow/docs/async-flow-states.png index 34cce0e82ce7..c6133673af59 100644 Binary files a/packages/async-flow/docs/async-flow-states.png and b/packages/async-flow/docs/async-flow-states.png differ