DRAFT 2026-05-15Work in progress. Math is load-bearing, copy is being iterated.
← Widgets

DAG Topology

Pipeline shape determines yield, expected work, and rework cost. Each pass through any of these topologies is its own DAG. The cyclicality of rework lives in the attempt counter, never in a single pass.

Companion to The Knowledge-Work Assembly Line. The partial-rework corollary is the operational payoff.

Start with a scenario
80%

P(clear) on a fresh attempt

4

independent sub-outputs the producer emits

0.00

how much sibling parts fail together in one run

0.00

how much a failure lowers rerun success

What each topology is doing

Serial composition

Each node feeds the next. The output of A is the input of B. The joint accept rate is the product of per-node accept rates. This is the assembly-line classic and the failure mode in most AI-pipeline POCs. See the dedicated yield-collapse widget for the long-form visceral version.

Parallel-AND composition

A source fans out to N independent producers, all of which must clear for the merge node to accept. Latency drops because the branches run in parallel. Yield does not improve over a serial chain of the same N nodes - the AND merge still requires every branch to clear, so the joint probability is still the product. The win is throughput, not correctness.

A variant, parallel-OR (any branch accepts), behaves the opposite way: yield is 1 - ∏(1 - pi) and approaches 1 fast. That is the redundant-verifier pattern, useful when a false reject is cheap.

Verifier + Producer (full rework)

A producer P emits a candidate. A verifier V either accepts it (forwards to output) or rejects it (loops back to P for a full rerun). With unbounded reruns and accept rate a, the expected number of attempts is 1 / a, so the expected total work is 1 / a producer-runs. At 80% accept, that is 1.25 producer-runs in expectation. At 50%, it is 2.0.

Partial rework (the corollary)

If the producer emits N independent parts and the verifier can check each part independently, then only failed parts need to be rerun. Expected total work per pipeline pass becomes Σ (1 / ai) * (costi / total_cost) instead of 1 / aN. For any per-part accept rate below 100%, partial rework strictly dominates full rework, and the gap grows fast as either N or the failure rate grows.

The operational implication: design pipelines so the verifier can verify parts, not just the whole. Whenever you can break an output into independent slices that can be checked independently, do it. The expected rework cost falls multiplicatively. Wrong if: the parts are not actually independent, in which case fixing one part may break another and the partial-rework assumption fails.

DAG through every pass

None of these topologies are cyclic at the per-pass level. The rework loop is a cycle only over the meta-counter of attempts. Every individual pass through the pipeline is a DAG, which is why every standard DAG property (topological order, parallelism, associative composition) still holds. Cyclicality at the attempt-counter level is what makes the expected-work math tractable.

See also