HealthCheck Workflow

The idea is:

Add a workflow-level option to attach a HealthCheck Workflow, similar to the way an Error Workflow is attached, in the workflow Settings.

Aside from the HealthCheck Workflow Name, additional sub-parameters might include:

  • Type
    • Preflight - Run before workflow when the last HealthCheck is stale (per Frequency setting) → Prevent workflow from running and toggle Active off
    • Interval - Run in the background, independent of Workflow executions → Toggle Active off upon failure
  • Frequency
    • If Type == Preflight, minimum time between HealthCheck Workflow executions
    • If Type == Interval, how often to run the HealthCheck Workflow in the background.
  • Minimum Recovery Time - How long to wait before re-checking, and/or re-activating the workflow, following a HealthCheck Workflow “failed” result

My use case:

Would like to prevent workflow errors by checking the health of its upstream resources “Up Front”, but not necessarily every time it runs, and managing its Active state. Explicitly calling a HealthCheck Workflow (or just adding steps to the front end of a workflow) would still show as a workflow failure (e.g. using Stop and Error).

I think it would be beneficial to add this because:

  • It could be implemented to reduce workflow execution failures.
  • It would isolate HealthCheck logic and potentially share the system resources consumed by HealthChecks executions.
  • It could reduce or eliminate the consumption of events (e.g. newly received emails) at times when processing cannot successfully complete.
  • It could allow for a common (factored out) set of parameters to implement a custom Active Schedule for a workflow. i.e. The HealthCheck Workflow could intentionally “fail” and deactivate a workflow during a known downtime windows for an upstream service.
  • It would make it practical to manage API-call limits related to checking the health of some upstream services (e.g. where a “free” /health endpoint call is not possible)

Any resources to support this?

There are numerous references for implementing HealthCheck endpoints, and designing HealthCheck monitoring.

Are you willing to work on this?

Yes, for design review and/or UAT.