What runs while nobody is looking
A flow that fires on an event gets noticed when it breaks: something does not happen when it should. A flow that runs on a calendar and was never registered has no such moment. It simply never had one, and nobody finds out. These ten are registered, and a test fails when one of them loses its clock.
Expiry, reminders, the sweep and three observers
- Compliance expiring in 30 daysThe first warning, while there is still time to renew without stopping anything.
- Expiring in 15 daysThe second pass, to whoever holds the document and to whoever depends on it.
- Expiring in 7 daysThe last one before it stops being a warning and becomes a hold.
- Expired todayThe billing hold goes on. An expired certificate does not release a payment.
- Scheduled-phase sweepThe seventh trigger. Without this clock the scheduled date is a field nobody ever reads.
- Visit reminder, 24 hours outTo the inspector, with the address and the checklist attached.
- Visit reminder, 2 hours outThe one that catches the visit that was going to be missed.
- Cash timing observerLooks at what is due against what has landed, and says so before the week closes.
- Blocked-value observerHow much money is sitting still because a compliance document lapsed.
- Waiver gap observerPayments received whose lien waiver was never signed. That gap is the one that shows up in a dispute.
A flow with no clock never had a first run
All ten declared a schedule and none of them was being registered at startup. That is not a bug you find by using the product: nothing errors, nothing is red, and the screens all look right. What was missing was the run that never happened.
So the check is not that the flow exists. It is that the flow was registered with its clock, by name, one by one. A global count of seven out of ten reads as reasonable and hides exactly the two that the wrong schedule format left out.
What the check asserts
| Assertion | Result |
|---|---|
| Flows registered with a clock | 10 / 10 |
| Named one by one, not counted | Yes |
| Schedule format the engine reads | Yes |
| No schedule that is all wildcards | Yes |
| The sweep flow has its clock | Yes |