Managed RAG (Bedrock Knowledge Bases, Azure AI Search + Foundry, Vertex AI Search) or a custom stack (LlamaIndex + pgvector)? This playbook turns that fork into a weighted decision framework with exit costs priced in — and ships the answer as an ADR, not a hallway opinion.
Tier: Advanced · Hands-on time: ~40 minutes
This is the first decision every RAG design hits, and the official guidance is itself a spectrum: Google publishes five distinct RAG reference architectures running from fully managed to GKE-custom to GraphRAG, and Amazon's own senior AI SA job postings name Knowledge Bases explicitly. The decision is real on both sides — which is exactly why it belongs in an ADR with weights the architect owns, not the AI.
Fix the decision dimensions before asking AI anything. The research-backed set: control over retrieval internals, cost shape, compliance and residency fit, ops burden, and exit cost. Add workload-specific dimensions; resist letting the assistant add its own later.
Set the weights yourself. Weights encode business judgment — Anita, designing Orbit's orbit-docs-copilot, weights compliance and exit cost high because the copilot is multi-tenant and the platform decision is nearly irreversible once customer indexes exist. The AI never sets weights; it interrogates them.
Scaffold the matrix with a constrained prompt.
You are helping me build a platform decision matrix for a customer-facing
RAG copilot ("orbit-docs-copilot") at a B2B SaaS company.
Candidates: (a) Bedrock Knowledge Bases, (b) Azure AI Search + Foundry,
(c) custom LlamaIndex + pgvector on our existing Aurora Postgres.
Dimensions and my weights: control 20, cost shape 15, compliance/residency 25,
ops burden 15, exit cost 25.
For each cell: 2-3 sentences of assessment plus a "VERIFY" line naming the
exact vendor doc claim I need to confirm. Do not score the cells — I score.
Where you are unsure whether a capability exists, say UNKNOWN, do not guess.
Verify every capability cell. Chunking control, metadata filtering, access-control integration, region availability, pricing model — each claim gets a citation to a vendor doc page, checked today. Stale or invented platform capabilities are this track's signature failure mode, and RAG platforms change quarterly.
Score the cells yourself, then make the AI argue the other side. Whichever option leads, prompt: "Argue that this choice is wrong for this workload. What breaks in 18 months?" The strongest counterarguments become ADR consequences.
Price the exit explicitly. For the managed options: what leaves with you (source documents, metadata) and what does not (index format, chunking behavior, tuning). For custom: who maintains it when the two engineers who built it move on. Write the exit-cost paragraph as if you are the person executing the exit.
Draft the ADR from the completed matrix. Context, options considered with scores, decision, consequences — including the losing options' strongest points and a named revisit trigger (corpus 10x, new residency rule, platform pricing change).
Attach a one-page reference diagram of the chosen architecture so the ADR is reviewable by people who will never open the matrix.
When the decision is for a client engagement, extract the MSA's AI and data-handling constraints first — they can eliminate candidates outright (no cross-border processing, approved-vendor lists) before any matrix work. Describe the workload to the assistant abstractly: "a multi-tenant document copilot for a regulated retail client," no client names, corpus samples, or contract terms. If the client provides approved tenancy (Bedrock or Azure OpenAI in their subscription), run the scaffolding there. For a fully offline pass, a local model via Ollama can scaffold the matrix structure — the verification work is all vendor-doc reading, which needs no client data at all.
The matrix is the argument and the ADR is the artifact — AI fills cells and attacks your draft, but the weights, the scores, and the exit-cost paragraph are yours, verified against vendor docs dated this quarter.