jargon

Data engineering·topic 5 of 8

Orchestration and running it in anger

The code is the easy part. This is the vocabulary of the thing that runs it every night, of what happens when one run fails, and of finding out what else is now wrong because it did.

Read in order · tick what you already know

  1. 01

    something has to decide that the transform runs only after all four extracts finished, and retry the one that did not.

    Orchestrator

  2. 02

    the pipeline is drawn as boxes with arrows, nothing points backwards, and a step waits for everything pointing at it.

    DAG

  3. 03

    the job is set to hourly, takes seventy minutes, and now two copies are running at once.

    Schedule interval

  4. 04

    the first step of the pipeline does nothing but sit there checking every minute whether the file has landed.

    Sensor

  5. 05

    the model runs when the table it depends on is actually updated, rather than at half past two because that is usually late enough.

    Data-aware scheduling

  6. 06

    the run that started at 02:00 on Tuesday is processing Monday's data, and half the confusion in the team is about which date the run is named after.

    Logical date

  7. 07

    you ran the same job three times after a failure and the output table is identical to running it once.

    Idempotent pipeline

  8. 08

    the run deletes its own day's partition and writes it again, so re-running never duplicates a row.

    Partition overwrite

  9. 09

    the logic was wrong for three months, so you re-run the same job for ninety past days and hope nothing downstream notices mid-way.

    Pipeline backfill

  10. 10

    you enabled a pipeline with a start date last January and it immediately queued four hundred runs.

    Catchup

  11. 11

    you cap the number of tasks that may touch the production replica at four, so a backfill cannot take the source down.

    Concurrency limit

  12. 12

    one malformed row fails the batch, the batch retries, and the same row fails it again every five minutes for two days.

    Poison record

  13. 13

    rows that fail validation go to a side table with the reason attached instead of failing the load or being silently dropped.

    Quarantine table

  14. 14

    the scheduler thinks the task is running, the worker that was running it died an hour ago, and nothing has noticed.

    Zombie task

  15. 15

    someone marked the failed task as successful at 03:40 so the rest of the pipeline could proceed, and did not write down why.

    Manual intervention

  16. 16

    you need to know whether last Tuesday's run of this model succeeded, and how long it took the last thirty times.

    Pipeline run history

  17. 17

    the dashboard renders perfectly and every number on it is from Thursday.

    Data freshness

  18. 18

    the agreement says this table is never more than three hours behind, so a four-hour delay is a breach rather than an opinion.

    Freshness SLA

  19. 19

    the number is wrong and you need to know every table between it and the source, without reading forty SQL files.

    Data lineage

  20. 20

    you need to know whether dropping this one column breaks anything, not whether the table is used.

    Column-level lineage

  21. 21

    before changing the model you list every dashboard, export and reverse-ETL sync that reads it, and it is longer than you expected.

    Impact analysis

  22. 22

    two pipelines have no declared relationship and one of them only works because the other happens to run first.

    Pipeline dependency inversion

  23. 23

    the source team changed a status code's meaning, the pipeline kept running, and your funnel report has been wrong since Tuesday.

    Upstream drift

  24. 24

    the source team's deploy pipeline fails if they remove a field your models depend on, because the expectation is written down and checked.

    Data contract

  25. 25

    the producer registers the schema and gets an id, and the consumer looks that id up rather than guessing at the payload.

    Schema registry

  26. 26

    you tried to add a required field and the registry rejected it, because old consumers could not read the new messages.

    Schema compatibility mode

  27. 27

    before merging the refactor you run the new model over last month and diff its output against what the old one produced.

    Golden run