All videos
Antvia Data · Episode 4 of 8

Workflows: green is not the same as right

Workflows are the scheduled jobs that turn landed data into the tables people read. This episode shows the two faults that let a workflow run green and still publish the wrong number: a step that reads a table without waiting for the step that makes it, and a step set to carry on after it fails. It reads the workflow register, opens four workflows to see each fault in the graph and in the steps, and follows the problems from the home page.

7:408 chapters917 wordsSilent, with captions

Also on YouTube, with the rest of the Antvia Data series. The whole episode is written out below, with the timing, if you would rather read it.

Chapters

What happens, in order.

0:00
Introduction
Title card.
0:07
Six workflows, two of them wrong
The workflow register: the warning about green-but-wrong workflows, the summary figures, and the columns for undeclared dependencies, silent failures and the critical path.
1:37
A race nobody can see
The Marts and models workflow: the undeclared dependency, the dashed line in the graph, the step detail for the region scorecard, and the critical path.
2:56
Across workflows
The Marketing attribution workflow: a step that reads call events without waiting, and a table produced by a different workflow entirely.
3:40
Carry on after failing
The Channel stock refresh workflow: the extract step set to carry on, the failed state in the graph, the check that compares stale with stale, and why carrying on is right for a notification.
5:14
Portals and leftovers
The warranty download with its retries and a drift check set to carry on, and the paused water heater workflow.
6:25
From the home page
The home page items for the three workflow faults, following one back to its workflow, and the Workflows figure in the Arriving panel.
7:17
Close
Closing card.
Transcript

The whole episode, in words.

The videos are silent, with the captions burned in. This is the same text, with the timing, so you can find the part you need without scrubbing for it.

Introduction

0:00
Antvia Data. Workflows: green is not the same as right. Two design faults that never fail a run, and how Antvia Data finds them before the numbers go wrong.

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.

Close

7:17
Green runs you can believe. Every step's reads checked against what it waits for. Steps that carry on after failing, flagged before the run. Reads across workflows that no single graph can show. Each fault ranked on the home page and linked to its fix.
Next step

See it on your own data.

Thirty minutes on the half you came for. Bring the report that breaks every month, or the decision you never settled.