Tensions in Practice: One reproducible sequence in tension with available parallelism¶
Combining two independently prepared drafts
Drafts A and B can be prepared independently. Combine C needs both finished drafts. Keeping those dependencies leaves A and B incomparable: either can go first or both can run at once if resources permit. A single sequence A, B, C gives a simple repeatable processing order but adds A-before-B, a restriction the task itself did not require.
Make one sequence easy to follow
Provide a deterministic order for a serial consumer.
Preserve independent readiness
Leave unrelated prerequisites free to proceed separately.
Why these aims pull against each other
A linear extension respects the original dependencies while adding comparisons; preserving partial order requires a consumer that can manage a ready set.
Choose an arrangement to see what changes and what remains difficult.
Arrows are precedence constraints. The single sequence adds A-before-B; the dependency view shows both prerequisites of C without that extra comparison.
What this choice protects
What it costs
When it fits
Compare the arrangements
Publish one sequence
Choose A, B, C and ask the consumer to finish each before starting the next.
- What it protects
- The consumer follows one stable list without choosing among ready drafts.
- What it costs
- B waits for A even though their content does not depend on each other.
- When it fits
- Fits a serial tool or a need for reproducible processing order.
Illustration note: The extra precedence is a policy choice, not a newly discovered dependency.
Keep the dependency relation
Declare A→C and B→C; dispatch A and B independently when resources allow.
- What it protects
- The original independent work can overlap.
- What it costs
- The consumer must track completion and readiness rather than just the next list item.
- When it fits
- Fits a workflow with independent resources and a dependency-aware consumer.
Illustration note: The graph permits parallel work; it does not supply workers or guarantee faster completion.
What this illustration does—and does not—establish
The source supplies the structural tension; the invented example makes one relation inspectable. Costs and conditions are part of each arrangement, not exceptions to a universal recommendation.
- Arrows denote finish-before-start requirements, not information flow or authority.
- A and B are stipulated independent and C requires both. Hidden shared resources would add constraints.
- The selected serial order is one of two valid linear extensions; it does not rank draft quality.
Source entries
Order
The canonical tension motivates this comparison. The setting, finite values and arrangements are declared editorial illustrations, not measured findings.
Total vs. partial order: serializing for processing vs. preserving for parallelism
Many practical systems require sequential output — a single build sequence, a single ranked list, a single execution schedule, a single linear narrative — even when the underlying structure is partial. Totalization (extending a partial order into a total order via topological sort or another linearization) makes sequential processing possible but arbitrarily chooses among many valid linear extensions, hiding the parallelism opportunity that the partiality represented. Preserving the partial order makes parallelism (antichain dispatch, parallel-merge resolution, concurrent execution) possible but complicates downstream tools that expect a linear sequence and complicates reasoning about ordering-dependent behavior.
The source operation
Order is the ranking-and-precedence principle that a set acquires structure through a binary relation that says "this element comes before (or below, or precedes) that one", subject to characteristic axioms — reflexivity, antisymmetry, and transitivity in the standard non-strict case; irreflexivity, asymmetry, and transitivity in the standard strict case — and admitting refinements (totality, density, well-foundedness, lattice structure) that license different reasoning tools.