Six workflows, two of them wrong
0:07
Six workflows, two of them wrong. The register, and what "succeeded" leaves out.
0:12
WorkflowsWorkflows are the scheduled jobs that turn what lands into the tables people read. Acme Home Appliances, a demo company, runs six of them.
0:23
Green, and wrongTwo succeeded this morning and are still wrong. Nothing failed, nothing was retried, and nobody was paged.
0:31
Two faultsThere are two ways that happens. A step reads a table without waiting for the step that makes it. Or a step is set to carry on after it fails.
0:43
RacingTwo steps are racing their own inputs.
0:48
Carrying onOne step fails without stopping anything below it.
0:53
GreenFour of the five scheduled workflows are green. The home page and a status board would both call that a good morning.
1:03
Critical pathThe longest workflow takes just over fourteen minutes. That is its critical path, the slowest chain of steps, not the sum of all its work.
1:14
Columns that count faultsUndeclared and Fails silently count the faults per workflow, so the register sorts the risky ones to the top.
1:24
Switched offAt the bottom, a workflow built for the water heater business, which was sold in March. It is paused, and somebody's dashboard still points at what it used to make.
A race nobody can see
1:37
A race nobody can see. Marts and models, where one step does not wait.
1:43
Marts and modelsMarts and models builds the reporting marts every morning at 05:30. Its last run succeeded.
1:50
The raceBuild region scorecard reads the marketplace returns mart, which Build returns mart produces, and declares no dependency on it. So the two run at the same time.
2:02
In the graphThe graph lays steps out left to right by what they wait for. The dashed red line is the read nobody declared.
2:11
Whichever winsOn a fast morning the scorecard finishes first and nets yesterday's returns off today's billing. On a slow one it is right. Either way the run is green.
2:26
The stepEach step says what it reads, what it waits for, and what happens if it fails. This one waits for nothing and reads two tables.
2:38
Critical pathThe critical path is the chain that bounds the schedule. Making any other step faster changes nothing.
2:46
Certified anywayAnd the certification check at the end passes, because it checks the tables, not the order they were built in.
Across workflows
2:56
Across workflows. A read that no single graph can show.
3:05
Marketing attributionMarketing attribution joins spend to leads to units sold, every morning at seven.
3:11
Same faultThe same fault: Attribute leads reads the call events another step lands, without waiting for them.
3:21
WorseAnd it reads secondary sales, which a different workflow produces. No graph anywhere shows whether that table was ready.
3:32
The stepThe step's own note says it plainly. The cost-per-lead mart it writes is already failing three checks.
Carry on after failing
3:40
Carry on after failing. Channel stock refresh, nine green mornings in a row.
3:50
Carries onThe channel stock refresh starts by landing stock from the distributor portal. That step is set to carry on if it fails.
3:59
Why it was setIt was set in March to stop a flaky portal paging somebody at six in the morning. It worked, which is why it is still there.
4:11
Failed, then fineIn the graph the first step is failed and outlined in red. Everything after it ran and succeeded, on the stock that was already there.
4:24
The check that passesThe row-count check compares today with yesterday. Yesterday was also stale, so the comparison passes.
4:33
The fixThe fix is one setting: stop the run when this step fails. Then the dashboards would say the stock is old, instead of showing it as today's.
4:53
When carrying on is rightCarrying on is not always wrong. The daily core build posts to the team channel at the end, and a failed notification should never hold up a pipeline.
5:05
The differenceThe difference is whether the step writes something another step reads. This one writes nothing, so it is not flagged.
Portals and leftovers
5:14
Portals and leftovers. A weekly download, and a workflow for a business that was sold.
5:24
A portal downloadWarranty claims come from the service partner portal every Monday at five.
5:31
Five retriesFive retries, because the portal is a web page and the page changes.
5:38
A check that carries onThe drift check is also set to carry on. When four columns were renamed on 3 August, they were dropped silently rather than stopping the run.
5:49
Not flagged, still worth a lookIt is not counted as a silent failure, because a check writes nothing. The consequence shows up elsewhere: claim amounts now land as text.
6:06
A leftoverThe water heater workflow last ran on 28 March. The business was sold, the workflow was switched off, and nobody removed it.
6:16
Never run sinceIts steps show as never run. The Lens dashboard built on it has had no viewers in thirty days.
From the home page
6:25
From the home page. Where these faults surface, and where they lead.
6:32
ArrivingOn the home page, Arriving counts four of five workflows green, and two racing an input.
6:40
Ranked with everything elseEach fault is also an item in Needs somebody, ranked alongside broken sources and unprotected columns.
6:50
The raceThe scorecard race is there too, with the table it reads and the step it should wait for.
7:00
Straight to the fixEach item opens the workflow where it gets fixed.
7:06
Before the runThese faults are properties of the design, not of a run. That is why Antvia Data can show them before a morning goes wrong, instead of after.