jargon

Comparison

Pipeline dependency inversionvsTemporal coupling

Pipeline dependency inversion

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

A real data dependency that exists in the SQL but not in the orchestrator's graph, so ordering is a coincidence of scheduling. It survives for months because the timing usually holds, and it breaks the day one job gets slower. Deriving the graph from the code rather than maintaining it by hand is the structural fix, which is most of the argument for data-aware scheduling.

Full entry →

Temporal coupling

the call only works if you remember to call the other method first, and nothing tells you that.

A dependency not on what another piece of code does but on when it is called. Two methods that must run in a particular order, an object that must be configured before it is used, a test that passes alone and fails in a suite. It is the hardest coupling to see in review because it is invisible in the type signatures, and it is usually discovered by someone new who called things in the obvious order.

Full entry →

Related comparisons