← Track Overview Claude Certified Architect – Professional

Quick Reference Sheet

The decision rules this exam actually tests. When two options are both defensible, the one that removes a capability is usually right.

1. Exam at a Glance

ItemValue
Exam codeCCAR-P
Number of items63
Item formatMultiple-choice and multiple-response; each item states how many to select
Time limit120 minutes
Passing scoreScaled score of 720 on 100–1,000, set by a standard-setting study
Fee / validity$175 USD · 12 months
ReportingPass/fail, scaled score, and percent-correct by domain
PrerequisitesNone required. Recommended: 3+ yrs systems architecture, 6+ months hands-on Claude in production, end-to-end delivery experience.

2. The Seven Domains

Item counts assume a 63-question exam. Integration is the heaviest single domain. Domains 6 and 7 have almost no API surface and are 21% of your score between them.

DomainWeightItemsLab
1. Solution Design & Architecture17%111, 2
2. Claude Models, Prompting & Context Engineering13%83
3. Integration19%124, 5
4. Evaluation, Testing & Optimization16%106, 7
5. Governance, Safety & Risk Management14%98
6. Stakeholder Communication & Lifecycle14%99
7. Developer Productivity & Ops Enablement7%410

3. The Pattern Ladder

Climb only when the rung below cannot hold the requirement.

PatternWho decides control flowUse when
Augmented LLMNobody, there is no flowClassification, extraction, summarization, Q&A over retrieved context
WorkflowYou, in advanceThe steps are enumerable and stable
AgenticClaude, per turnThe path is unknown until the work begins
"The steps never change" means workflow. Exposing fixed steps as tools does not make a workflow; it makes an agent you did not admit to. An agent needs all four of: complexity, value, viability, and a survivable cost of error. Irreversible actions with no detection is the classic disqualifier.

4. The Five Planes

PlaneContainsAnswers
IngressAuth, rate limits, input validation, PII redaction, untrusted-content isolationWhat is allowed in?
ContextRetrieval, caching, prompt assembly, token budgetWhat does the model see?
ReasoningModel choice, effort, tools, orchestrationWhat does the model do?
EgressSchema validation, guardrails, human gates, action executionWhat is allowed out?
FeedbackTraces, evals, cost/latency telemetry, labelled failuresHow do we know, and how do we improve?

The feedback plane is the one candidates omit. Without it there is no eval set, no way to separate a retrieval regression from a prompt regression, and no evidence for the stakeholder conversation.

5. Control Strength: What Actually Enforces

ControlTypeStrength
Remove the capability / toolPreventiveStrong
Deterministic hook or allowlist before executionPreventiveStrong
Output schema validationPreventiveStrong
Human-in-the-loop gatePreventiveStrongest, slowest
Confirmation prompt before the actionCompensatingPartial
Logging and auditDetectiveAfter the fact
Instruction in the system promptAdvisoryNot a control
A bigger / more capable modelNot a control
Anything enforced only by asking the model nicely is not a control. Least privilege removes a capability; it does not guard it. And the agent must act with the permissions of the requesting user, not of the application. A service account holding the union of everyone's permissions is a confused deputy. Authorization belongs inside the tool implementation, never in the prompt.

6. Prompt-Injection Defense

WorksDoes not work
Isolate untrusted content in a tool-less call or subagentTelling the model in the system prompt to ignore embedded instructions
Remove privileged tools from any context that sees untrusted inputSwitching to a larger, more capable model
Deterministic hooks and allowlistsRaising output_config.effort
Validate output against a schema before actingAdjusting sampling parameters (they were removed and return 400)
Treat all retrieved and tool content as data, never instructionEscaping or quoting the content alone

7. Retrieval by Query Shape

Query patternUseWhy
Exact key (policy ID, customer ID)Database lookup / metadata filterA vector search on a key is architecture theatre
Rare tokens: SKUs, error codes, proper nounsLexical / BM25Dense embeddings systematically miss high-entropy tokens
Paraphrase / semanticDense vectorMeaning, not surface form
Both (the common case)Hybrid fusion + rerankThe strong default
Multi-hop / relationalGraph or query decompositionOne retrieval cannot span the join
Recency-sensitiveMetadata filter, then rankRelevance is not recency
Three RAG rules the exam leans on. Chunk boundaries destroy meaning: a table split across chunks answers nothing. Changing the embedding model invalidates the entire index; you must re-embed everything, or mixed embedding spaces silently return garbage. And ACL/tenant filtering happens at retrieval time as a metadata prefilter, never by asking the model to ignore documents it should not have seen.

8. Cost and Latency Levers

LeverCostLatencyCatch
Prompt cachingDownDownThe rare lever that moves both. Needs a stable prefix.
Batches API50% offDestroyed24h window, single-turn, results unordered
StreamingUnchangedTTFT downPerceived latency only. Does not reduce cost.
Model routing (Haiku → Opus)DownDownQuality risk if the task is misjudged
Lower effortDownDownHard-task quality falls
Bigger modelUpUpBuys quality, nothing else
max_tokensA cap, not a cost control. It truncates.
Caching rules. Prefix match only. Block order is toolssystemmessages. Max 4 breakpoints. Reads bill at roughly 0.1×, writes at 1.25× (5-minute TTL) or (1-hour). Minimum cacheable prefix is 4,096 tokens on Opus 4.8. Anything that varies goes last. A timestamp at the top of the system prompt destroys every hit. Verify with usage.cache_read_input_tokens, and remember usage.input_tokens is the uncached remainder only, so naive cost math undercounts.
Cost per request is the wrong denominator. Track cost per resolved task. A change that halves cost per request while quality drops and users retry has raised your real cost and hidden it behind a green dashboard.

9. Symptom → Plane Differential

The thing that changed is the thing that broke.

SymptomLook at
Confidently wrong right after a data refresh; model and latency unchangedRetrieval / indexing: a broken re-index or mismatched embeddings
Degrades only on long inputsContext management: window, pruning, compaction
Output violates the schemaEgress / output contract
Correct on easy cases, fails on hard reasoningModel mismatch, or effort too low
Output truncated mid-thoughtstop_reason == "max_tokens"
Agent loops foreverMissing termination condition
Latency spike, prompt unchangedInfrastructure or retrieval, not the model
Cache hit rate collapsesSomeone put a timestamp at the front of the prompt
Hallucination is a symptom, not a diagnosis. Decompose it: no grounding (retrieval), grounding present but ignored (force citations and validate the cited span exists), contradictory grounding (data quality), or genuinely out of distribution (model mismatch). The ablation ladder: rerun the failing case with a hand-built perfect context. If it passes, the defect is retrieval, not reasoning.

10. Evaluation

GraderGood forWatch out
ProgrammaticSchema, exact match, does the cited span existNarrow. Use it first because it catches most regressions.
LLM-as-judgeRubric scoring at scalePosition, verbosity, and self-preference bias. An uncalibrated judge is a metric you invented.
HumanGround truth, calibration, high-stakes casesExpensive. Reserve it.
Three rules. Average latency hides the tail, so report p95. Inter-annotator agreement caps your accuracy target: if humans agree 85% of the time, chasing 99% is overfitting one annotator. And pair every primary metric with a guardrail metric, or you will ship a win on one and a regression on the other.
Determinism does not come from sampling parameters. temperature, top_p, and top_k were removed and return 400. Reproducibility comes from pinning the model ID and the prompt version, then reporting a pass rate over a set of cases rather than the verdict of a single trial.

11. SLA vs SLO vs SLI

TermMeans
SLIA measured signal: p95 latency, availability, citation-validity rate
SLOAn internal target on an SLI
SLAA contractual commitment, with consequences
Error budgetThe allowed shortfall, and it is spent on change
Never promise an accuracy SLA on live traffic. Live traffic has no reference label, and you cannot commit above the ceiling at which your own experts agree. Accuracy is an SLO on a frozen, held-out set. Availability, latency, and the existence of a human gate are things you can actually commit to.

12. Compliance: Architectural Obligations

Architectural guidance, not legal advice.

RegulationWhat it forces into your design
GDPRData minimization (redact before the call); purpose limitation; right to erasure reaches your logs, traces, caches, and eval set; Art. 22 implies meaningful human review of automated decisions
HIPAAA BAA with any processor; minimum necessary; audit controls; encryption in transit and at rest; de-identify where possible
FedRAMPAuthorized offerings and regions only; the authorized service boundary; control inheritance; continuous monitoring; change control
Cross-cuttingResidency drives where you deploy. Retention drives what you may log. Auditability drives structured traces with request IDs.
An aggregate metric conceals a fairness failure. 92% overall accuracy hiding 71% on one segment is a governance problem, and stratifying your eval metrics is the only way to see it. Bias enters through the eval set, the retrieval corpus, and the prompt's examples, not only through "the model."

13. API Shapes That Now Return 400

Where this exam touches code, it touches the current API. These shapes are removed, not deprecated with a warning.

# WRONG - each of these returns HTTP 400 on current models thinking={"type": "enabled", "budget_tokens": 8000} temperature=0.7 top_p=0.9 top_k=40 output_format={...} # superseded by output_config.format messages=[..., {"role": "assistant", "content": "{"}] # prefill: rejected # CURRENT thinking={"type": "adaptive", "display": "summarized"} output_config={"effort": "high", "format": {...}} model="claude-opus-4-8" # never date-suffixed client.messages.count_tokens(...) # never tiktoken
ModelIDContext$/1M in$/1M out
Claude Opus 4.8claude-opus-4-81M$5.00$25.00
Claude Sonnet 5claude-sonnet-51M$3.00$15.00
Claude Haiku 4.5claude-haiku-4-5200K$1.00$5.00
Claude Fable 5claude-fable-51M$10.00$50.00
Batch results arrive in any order. Key them by custom_id, never by position. Positional zipping is a silent data-corruption bug: every result attaches to the wrong input, nothing throws, and the pipeline looks green.

14. Harness vs Deployment

ApproachHarnessDeploymentTools
Manual loopYouYouYours only
Tool Runner (anthropic SDK)SDKYouYours only
Claude Agent SDK (claude-agent-sdk)SDKYouBuilt-in file, bash, search + MCP
Managed AgentsAnthropicAnthropicHosted sandbox + Skills/MCP

The Tool Runner is not the Claude Agent SDK. Both supply a harness only; you still deploy. Managed Agents is the only one that supplies both.

Take the Practice Exam → Track Overview