This PR implements a dead letter queue for workflows. If a workflow execution is recovered more than N times (50 by default, configurable in WorkflowConfig), it is placed in the dead letter queue and no further attempts will be made to recover it. A list of all workflows in the dead letter queue can be retrieved with getWorkflows().
The goal of this change is to reduce the damage caused by buggy workflows that crash the execution environment. Without a dead letter queue, these will be retried indefinitely, wasting resources and disrupting other works. With this change, they are retried a maximum number of times then placed in the DLQ for manual investigation and restart.
This PR implements a dead letter queue for workflows. If a workflow execution is recovered more than N times (50 by default, configurable in
WorkflowConfig
), it is placed in the dead letter queue and no further attempts will be made to recover it. A list of all workflows in the dead letter queue can be retrieved withgetWorkflows()
.The goal of this change is to reduce the damage caused by buggy workflows that crash the execution environment. Without a dead letter queue, these will be retried indefinitely, wasting resources and disrupting other works. With this change, they are retried a maximum number of times then placed in the DLQ for manual investigation and restart.