Solution Design & Architecture·Task 1.5·Bloom: evaluate·Difficulty 4/5·10 min read·Updated 2026-07-14

Decomposition Granularity: Too Coarse vs Too Fine (CCAR-P)

Apply decomposition techniques for complex problem solving

SUBy Solomon UdohReviewed by Solomon UdohAI-assisted · human-reviewed
In short
The right decomposition granularity is the level at which each unit has a single owner (Claude, system, or human) and a single failure mode. Decomposing too coarsely hides sub-tasks that belong to different buckets or need different patterns; decomposing too finely fragments work that should stay together, adding coordination overhead with no benefit. Granularity should be re-checked against the pattern-selection factors, such as error cost and observability, once a candidate pattern is chosen.

How finely to cut the problem

Decomposition is not only about which pieces exist and how they depend on each other; it is also about how finely to cut. The Claude Certified Architect - Professional (CCAR-P) exam treats granularity as an evaluate-level skill because both extremes are failures, and the right level is a judgement, not a formula. Cut too coarsely and different kinds of work get merged into one unit that hides its own seams; cut too finely and coherent work is shattered into fragments that cost more to coordinate than they are worth. The target is the level at which each unit has a single owner and a single failure mode.

That target is precise enough to be useful. A unit with a single owner, Claude, an existing system, or a human, and a single failure mode is granular enough that its owner and its way of going wrong are unambiguous, and no more granular than that. Everything coarser hides distinctions that matter; everything finer adds coordination without adding clarity.

Decomposition granularity
The level of detail at which a problem is broken into units. The right granularity is where each unit has a single owner (Claude, system, or human) and a single failure mode. Too coarse hides sub-tasks belonging to different buckets or needing different patterns; too fine fragments coherent work, adding coordination overhead. Granularity is re-checked against pattern-selection factors once a candidate pattern is chosen.

Too coarse hides the seams

Decomposing too coarsely lumps distinct kinds of work into one unit, and the danger is that the merged unit hides sub-tasks that belong to different buckets or need different patterns. A single step labelled "Claude handles the order processing" might actually contain a deterministic calculation, a live-state lookup, and a judgment call, three pieces with three different owners, concealed inside one bucket. Because the coarse unit has more than one owner and more than one failure mode, you cannot assign it correctly or reason about how it fails. The seams are still there; the coarse decomposition has just papered over them, which is exactly how deterministic work ends up wrongly routed through the model.

Too fine fragments coherent work

The opposite error splits a single coherent task into many tiny units. A judgment task that is naturally one decision, weigh these factors and produce a recommendation, broken into a dozen micro-calls, adds coordination overhead, latency, and cost with no gain in quality or auditability. The fragments have to be orchestrated, passed between, and reassembled, and each hop adds failure surface. Fine-grained decomposition feels rigorous but often buys nothing: the work was already a single owner with a single failure mode, and splitting it just multiplies the moving parts. Over-splitting is as much a design flaw as over-merging, and it is easy to mistake for thoroughness.

Finding the granularity where owner and failure mode are singular
Loading diagram...
The right level sits between the extremes: coarse enough to keep coherent work together, fine enough that each unit has a single owner and failure mode.

Re-check granularity against the pattern

Granularity is not fixed once and forgotten. Once a candidate pattern is chosen, the granularity should be re-checked against the pattern-selection factors, especially error cost and observability. A pattern with a tight observability requirement may need finer units so each step is separately inspectable; a high error-cost step may need to be its own unit so it can be gated. Conversely, a pattern may reveal that some fine units can be merged without losing anything. The interaction runs both ways: the pattern informs the right granularity, and the granularity has to support the pattern. Re-checking after the pattern is chosen is how you keep the two consistent.

too coarse
hides multiple owners and failure modes in one unit
too fine
fragments coherent work, adds coordination cost
just right
one owner and one failure mode per unit

What the CCAR-P exam trips candidates on

The exam tests two traps. The first is merging a deterministic calculation and a judgment call into one "Claude step" because they happen to occur back to back in the user's workflow. The credited answer splits them, since they have different owners, code for the calculation, Claude for the judgment, and different failure modes, and the coarse merge hid that distinction.

The second is splitting a single coherent judgment task into many tiny Claude calls, adding latency and coordination cost without improving quality or auditability. The reliable reading recognises the over-split, notes that the fragments share one owner and one failure mode, and merges them back into the single unit they naturally form.

Worked example

A returns-processing design has one step: 'Claude decides the refund.' On inspection it contains looking up the order total (live state), computing the refund amount from a fixed policy (deterministic), and writing an empathetic explanation (judgment). A second design breaks the empathetic explanation alone into eight sequential Claude calls, one per sentence. Evaluate the granularity of each.

Take the coarse design first. "Claude decides the refund" is a single unit that actually contains three different kinds of work: an order-total lookup that is live state owned by another system, a refund computation that is a deterministic policy calculation, and an empathetic explanation that is genuine judgment. That is three owners, a tool call, code, and Claude, and three failure modes hidden inside one bucket. Because the unit is too coarse, the deterministic and live-state pieces get wrongly swept into the model, and you cannot reason about how the step fails. The fix is to split it so each piece has a single owner and a single failure mode: tool call for the total, code for the amount, Claude for the explanation.

Now the fine design. Breaking the empathetic explanation into eight sequential Claude calls, one per sentence, fragments a task that is naturally one coherent judgment: producing a warm, well-structured explanation. The eight fragments share one owner (Claude) and one failure mode (the explanation reads poorly), so splitting them adds orchestration, latency, and cost while buying no quality or auditability. That is over-splitting mistaken for rigour, and the fix is to merge the eight back into a single explanation unit.

The right granularity sits between the two designs: the refund step is decomposed into three single-owner units, and the explanation stays a single unit rather than eight. Each resulting unit has one owner and one failure mode, which is the level at which the decomposition is both assignable and reason-about-able. If the eventual pattern imposed a tight observability requirement on the explanation, granularity would be re-checked, but sentence-level splitting would still be the wrong way to meet it.

Common misreadings to avoid

Misconception

Steps that happen back to back in the workflow can be one decomposition unit.

What's actually true

Adjacency in the workflow is not shared ownership. A deterministic calculation and a judgment call that occur consecutively still have different owners and failure modes, so merging them into one 'Claude step' hides the distinction and misroutes the deterministic work. Split by owner and failure mode, not by sequence.

Misconception

Finer decomposition is always more rigorous and therefore better.

What's actually true

Splitting a coherent single-owner, single-failure-mode task into many tiny units adds coordination overhead, latency, and cost with no gain in quality or auditability. Over-splitting is as much a flaw as over-merging. Stop at one owner and one failure mode per unit.

How this shows up on the exam

Domain 1 questions on this knowledge point present a decomposition that is too coarse or too fine and ask you to right-size it. The reliable reading targets the level where each unit has a single owner and a single failure mode, splits coarse units that hide different owners or patterns, merges over-split fragments that share an owner, and re-checks granularity against the chosen pattern's error-cost and observability requirements.

Granularity is the evaluate-level capstone of the decomposition task, building on iterating the decomposition and the ownership logic of the three-bucket decomposition. It connects to coordinator task decomposition quality in multi-agent design and is re-checked against the five deciding factors.

Check your understanding

An architect merges 'fetch the customer's live loyalty tier, apply the fixed discount for that tier, and write a personalised thank-you' into a single 'Claude handles the offer' step. What is the granularity problem and the fix?

People also ask

What is the right level of decomposition granularity?
The level at which each unit has a single owner, Claude, an existing system, or a human, and a single failure mode. That separates different owners and patterns without fragmenting coherent work.
What goes wrong when decomposition is too coarse?
A single large unit hides sub-tasks that belong to different buckets or need different patterns, such as merging a deterministic calculation and a judgment call into one "Claude step".
What goes wrong when decomposition is too fine?
Splitting a coherent task into many tiny units adds coordination overhead, latency, and cost without improving quality or auditability, fragmenting work that should stay together.

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