Solution Design & Architecture·Task 1.5·Bloom: apply·Difficulty 3/5·8 min read·Updated 2026-07-14

Dependency Ordering in Decomposition (CCAR-P)

Apply decomposition techniques for complex problem solving

SUBy Solomon UdohReviewed by Solomon UdohAI-assisted · human-reviewed
In short
Some sub-tasks must complete before others can begin, such as verification before action or retrieval before synthesis. Decomposition must capture these dependencies explicitly, not just list the sub-tasks that exist. Sub-tasks without a dependency on each other are candidates for parallel execution; dependent sub-tasks must be sequenced. Getting dependency order wrong at decomposition produces an architecture that has to be redesigned once the omission surfaces.

A list of tasks is not a decomposition

Splitting a problem into sub-tasks is only half of decomposition; the other half is capturing how those sub-tasks depend on one another. The Claude Certified Architect - Professional (CCAR-P) exam treats dependency ordering as an apply-level skill because a decomposition that lists sub-tasks without their dependencies loses the information that decides the architecture's shape, namely what must happen before what, and what can happen at once. Some sub-tasks are strictly ordered, verification before the action it gates, retrieval before the synthesis that uses it, and some are independent and can run in parallel. Getting this wrong is not a small error; it forces a redesign once the omission surfaces.

The dependency structure is what turns a flat list into an executable plan. It tells you which pieces must be sequenced and which can be parallelised, and it exposes the ordering constraints that a pattern has to respect. Capturing it explicitly at decomposition time is far cheaper than discovering a missed dependency after the architecture has been built around a wrong assumption.

Dependency ordering in decomposition
Capturing, during decomposition, which sub-tasks must complete before others can begin, such as verification before action or retrieval before synthesis, rather than merely listing the sub-tasks. Independent sub-tasks are candidates for parallel execution; dependent ones must be sequenced. A wrong dependency order forces an architecture redesign once the omission surfaces.

Sequence what depends, parallelise what does not

The rule is straightforward once the dependencies are visible. Sub-tasks that consume another's output must be sequenced: if synthesis needs the retrieved documents, retrieval runs first; if an action depends on a verification passing, verification runs first. Sub-tasks that do not depend on each other are candidates for parallel execution, which reduces latency by doing independent work at once. The decomposition's job is to record which is which, so the pattern, a chain for the sequenced pieces, a parallelization or fan-out for the independent ones, can be chosen to match the real structure of the work.

The order that matters, not the order mentioned

A common failure is listing sub-tasks in the order a stakeholder happened to mention them, rather than the order their dependencies require. Stakeholders describe their process in narrative order, which need not match the execution order the dependencies demand. A decomposition that simply follows the order of mention can put an action before the verification that should gate it, or a synthesis before the retrieval it needs. The discipline is to derive the ordering from the actual data dependencies, what each sub-task needs as input, not from the sequence in which the problem was described.

Deriving execution order from dependencies, not from mention order
Loading diagram...
Execution order follows data dependencies. Apparent independence must be checked for a hidden shared dependency before parallelising.

Hidden dependencies defeat naive parallelism

The subtler trap is the hidden dependency: two sub-tasks that look independent but actually share a requirement, most often both needing the output of a verification or a setup step. Parallelising them appears safe, they seem unrelated, but because both depend on something that has not run yet, or on each other indirectly, the parallel execution produces wrong or inconsistent results. Spotting a hidden dependency means asking, for each pair you plan to parallelise, whether they truly share nothing, or whether both quietly rely on a common upstream output that must be sequenced first. Apparent independence is not enough; genuine independence is the requirement for parallelism.

sequence
dependent sub-tasks: dependency runs first
parallelise
genuinely independent sub-tasks run at once
hidden dependency
apparent independence that shares an upstream need

What the CCAR-P exam trips candidates on

The exam tests two traps. The first is listing sub-tasks in the order they were mentioned by the stakeholder rather than the order their actual dependencies require. The credited answer re-derives the execution order from data dependencies, placing verification before action and retrieval before synthesis regardless of narrative order.

The second is parallelising two sub-tasks that appear independent but actually share a hidden dependency, such as both needing a verification step's output. The reliable reading checks apparent independence for a shared upstream requirement and sequences the pieces that turn out to depend on a common step, rather than running them concurrently on a false assumption of independence.

Worked example

A payments system decomposes into: (1) verify the account is not flagged for fraud, (2) debit the account, (3) send a confirmation email, (4) update the loyalty-points balance. The stakeholder described them in the order 2, 3, 1, 4. A designer plans to run the debit and the loyalty update in parallel to save time. Order the tasks and evaluate the parallelisation.

Derive the order from dependencies, not from the order the stakeholder mentioned them. The debit is an action that must not happen before the fraud verification gates it, so verification (1) must run before the debit (2), regardless of the stakeholder listing the debit first. Following the mention order, 2, 3, 1, 4, would debit the account before checking for fraud, which is exactly the list-in-order-of-mention trap and a serious ordering error. The correct sequence starts with verification, then the debit.

Now evaluate the proposed parallelisation of the debit and the loyalty update. They look independent, one moves money, the other adjusts points, but the loyalty update depends on the debit having succeeded: points are awarded for a completed payment, so updating loyalty before the debit confirms would credit points for a payment that might not go through. That is a hidden dependency, apparent independence masking a shared reliance on the debit's outcome. Running them in parallel would produce inconsistent state.

The correct decomposition sequences the true dependencies: verify fraud (1), then debit (2), then, once the debit confirms, update loyalty points (4). The confirmation email (3) depends only on the debit succeeding, so it can run in parallel with the loyalty update, since those two do not depend on each other once the debit is done. Capturing this at decomposition time avoids building the architecture around the stakeholder's narrative order and around a hidden dependency that would have surfaced as a costly redesign later.

Common misreadings to avoid

Misconception

Sub-tasks should run in the order the stakeholder described them.

What's actually true

Narrative order need not match execution order. Dependencies decide the sequence: verification before the action it gates, retrieval before synthesis. Derive the order from what each sub-task needs as input, not from the order the problem was described in.

Misconception

If two sub-tasks look unrelated, they can safely run in parallel.

What's actually true

Apparent independence is not genuine independence. Two tasks can share a hidden dependency, such as both needing a verification or setup step's output. Check each pair for a common upstream requirement before parallelising, or the concurrent run produces wrong results.

How this shows up on the exam

Domain 1 questions on this knowledge point present a set of sub-tasks and ask for their execution order or whether some can run in parallel. The reliable reading derives the order from data dependencies rather than mention order, sequences dependent sub-tasks like verification-before-action, and checks apparently independent pairs for a hidden shared dependency before parallelising them.

Dependency ordering builds on the three-bucket decomposition and determines which workflow sub-pattern, chaining for sequenced work, parallelization for independent work, fits. It is also the precondition for valid orchestrator-subagent fan-out and fan-in, and a discovered ordering error triggers iterating the decomposition.

Check your understanding

A content-moderation pipeline has four sub-tasks: (A) fetch the post, (B) run an automated policy check, (C) publish the post, (D) log the moderation decision. Which ordering and parallelisation is correct?

People also ask

Why must decomposition capture dependencies, not just sub-tasks?
Listing sub-tasks without dependencies loses the information about what must happen before what, which decides whether tasks can be parallelised or must be sequenced. Getting it wrong forces a redesign later.
Which sub-tasks can run in parallel?
Those that do not depend on each other’s output. If neither needs the other’s result, they can run concurrently; if one consumes the other’s output, they must be sequenced.
What is a hidden dependency?
A dependency between two sub-tasks that appear independent but share a requirement, such as both needing a verification step’s output. Parallelising them looks safe but produces wrong or duplicated results.

Watch and learn

Official Anthropic Academy lessons first, then hand-picked walkthroughs. Videos load only when you press play.

No videos curated for this concept yet

We are still curating the best official and community videos for this topic.

Official prep for this domain

Anthropic's own free prep module for this part of the syllabus, on the official prep course. Free with an Anthropic Academy sign-in.

References & primary sources

Adaptive study

Master this concept with Archie

Practice it inside an adaptive study session. Archie, your Socratic AI tutor, tracks your mastery with Bayesian Knowledge Tracing and schedules the perfect next review.

Start studying