CrashGuard.io
Canary Oriented Workflow Monitoring
A canary is a deadline you set on a workflow instead of a log line you hope to see. You start one the moment a workflow kicks off, and resolve it the moment that workflow actually finishes — no matter how many systems it passes through in between. If the canary doesn't resolve before its deadline, CrashGuard knows the workflow is late or stuck, even if every individual system along the way reported success.
Checkpoints
A canary's deadline doesn't have to be a black box in between creation and resolution. Any system along the way can record a checkpoint — a named stage, with optional metadata — without resetting the canary's expiry. It's a lightweight progress marker, not a pulse: it tells you how far a workflow got, even if it never finishes.
Optional, anywhere
Any system in the workflow can record a checkpoint, not just the one that created or resolves the canary. A canary can have zero, one, or many checkpoints over its lifetime.
A timeline, not a status
Checkpoints are additive — each one is a timestamped stage name with optional metadata, stored alongside the canary. CrashGuard never overwrites or collapses them, so you get the full sequence of stages a workflow actually reached.
Pinpoints where it stalled
When a canary expires, its checkpoint history tells you exactly how far the workflow got before it got stuck — the difference between "it failed" and "it failed after payment cleared, before fulfillment."
Not sure? Add a verifier
By default, CrashGuard trusts the caller — resolving a canary is as simple as telling us it's done. A verifier raises the bar: it lets you attach workflow-specific logic that runs before a resolution is accepted, so "reported in" and "actually correct" aren't treated as the same thing.
- 1
Configure it on a canary type
Point a canary type at a verifier endpoint you control — a small HTTP service that knows what "successful" means for that specific workflow.
- 2
Resolution triggers the call
When a canary times out, CrashGuard doesn't mark it failed right away. It first calls your verifier, passing along the canary's metadata — the same JSON payload you attached when the canary was created.
- 3
Your logic decides
The verifier checks whatever actually matters — an order total matches, a payment cleared for the right amount, a file landed where it should — and returns a pass or fail.
- 4
Pass or fail, you find out
A pass resolves the canary as healthy, same as if there were no verifier at all. A fail alerts you immediately, even though the workflow technically reported success — catching the cases where something completed but completed wrong.