Patterns
What reliable automation actually looks like
Most automation fails in a small number of ways: a credential expires, a value arrives in a shape the next step cannot read, a run finishes clean and produces nothing, or a vendor goes down and takes the line with it. These are the six patterns we install against those failures, drawn from the workflows that run our own business.
Every plate is read from our live system rather than illustrated. No endpoint, credential, client or vendor appears on any of them; suppliers are labelled by role. If you want the number these patterns are measured against, including the parts of our own estate that do not yet pass, the self-audit publishes it.
§ 01 · Global error handler
A failure nobody hears about.
Every active workflow reports into one place. The alert path is ordered so that it survives the failure class it most often reports: the email escalation goes first over its own authentication, the chat alert is set to stop the workflow if it cannot deliver, and the log write is deliberately last and best effort, because it writes with the same credential class whose expiry it is usually reporting. A repeat inside the suppression window posts a quiet counted line instead of waking anyone twice.
§ 02 · Pipeline heartbeat
A pipeline that succeeds every day and produces nothing.
An error alarm cannot catch a workflow that runs clean and returns empty. This one watches the output instead. Both reads continue on error, so a dead credential arrives as ordinary data rather than raising, which lets the classifier separate three states rather than two: cannot read, read fine but nothing there, and healthy. The reads are chained rather than fanned out, because a parallel fan ran the workflow twice per cycle and doubled every alert.
§ 03 · Credential canary
The single most common cause of automation failing after day 90.
Three credentials are asked a question every morning, with a manual entry point alongside. Each probe continues on error and always returns output, because a canary has to keep working when the thing it measures is dead. Escalation fires on any probe failure, or when a token comes inside fourteen days of a known expiry, which turns an outage into a diary entry. A green run posts one quiet line and mentions nobody.
§ 04 · Three gates
An automated system sending something it should not have sent.
Three gates carry the reliability story. The content gate throws if any source read failed, so an outage can never be reported as a quiet week. The compliance gate fails closed: without a working unsubscribe link and a valid postal address nothing is built and nothing is previewed, and the refusal is a loud stop rather than a silent skip. The token gate sits on the human leg and refuses outright if the signing secret is unset. The machine can research, write, illustrate and typeset the entire issue. It cannot send it.
§ 05 · Provider cascade
One vendor outage stopping the whole line.
Three independent suppliers in series. None is retried against itself, because the retry is a different supplier. Every gate that comes back empty steps down to the next, and when all three are exhausted the run reaches an explicit failure that writes a named reason to the queue row rather than going quiet. The row is claimed before the first call, so two concurrent runs cannot take the same work. Before that explicit failure step existed, an exhausted run produced no output, no reason and no alert.
§ 06 · Drift reconciler
Two systems of record diverging until somebody notices months later.
Two systems are compared every morning. The planning step emits one action per discrepancy and performs none of them itself, then routes each action to send, log or hold. Sends carry an idempotency key unique to the subscriber and the stage, so a re-run cannot double send. The hold branch reports whatever the fail-closed rule has blocked: if the postal address required by the sending jurisdiction is unset, every due message is held and reported rather than sent.
§ 07 · Does any of this fire in practice
Yes, and the evidence is the two plates together. On the morning these were drawn, the provider cascade on plate 05 failed twice inside three minutes. Both times the global error handler on plate 01 fired within about twenty seconds and completed. That is one pattern catching another, in production, on an ordinary Friday.
It is worth being precise about what these plates prove and what they do not. They show design, not performance. They are evidence that the failure paths were thought about and built, not a claim that nothing ever breaks. Our own audit says plenty still does.
§ 08 · What it runs on
None of the six patterns above are hypothetical. They run on six services, named here because the claim only means something if the names are real.