Writing
Blog
Architecture patterns, trade-offs, and production lessons — updated as new posts are added as MDX files.
How the ideas connect
A concept map, not a tag list
Instead of grouping posts by topic, this graph plots the actual directional claims made across the writing — Cynefin informs Stacey, Team Topologies pairs with the Strangler Fig, Reference Architecture informs the Debt Quadrant. Every edge here is a link that already exists inside a post’s own prose.
Hover a node to see how it connects. Click it again — or the button below — to open the post.
AI Solutions Architect vs AI Engineer: C4 Already Solved This Confusion
A 2026 career guide can't cleanly separate Data Scientist, ML Engineer, AI Engineer and AI Solutions Architect. The C4 model already named these four levels — just not by job title.
The Technical Debt Quadrant: The Only Debt That Should Scare You Is the Debt Nobody Chose
Martin Fowler's reckless/prudent × deliberate/inadvertent grid, and why the quadrant an AI system's debt falls into matters more than the debt itself.
Team Topologies: The Org Chart Is an Architecture Decision
Four team types, three interaction modes, and why an AI platform's biggest bottleneck is usually the team boundary, not the code.
The Strangler Fig Pattern: How to Replace a System Without Ever Shipping a Rewrite
Martin Fowler's incremental migration pattern, and why it's the only honest way to put AI features into a legacy system without a big-bang cutover.
The Stacey Matrix: Cynefin's Cousin That Asks About People, Not Just Cause and Effect
Ralph Stacey's agreement-vs-certainty matrix predates Cynefin and answers a subtly different question. Here's how the two actually relate, and when to reach for which.
Postel's Law: Be Liberal in What Your Agent Accepts, Strict in What It Sends
The robustness principle is almost 50 years old and describes the exact bug pattern breaking tool-calling chains today — an agent that's fragile on input and sloppy on output.
Permission Manifests: robots.txt Was Never Built for Agents That Act
Crawlers only ever read. Agents click, fill forms, and buy things — and the web has no standard way to say what an agent is allowed to do until agent-permissions.json.
OODA: Winning Isn't About Being Right, It's About Cycling Faster
John Boyd's Observe-Orient-Decide-Act loop, and why the team that iterates faster beats the team with the better initial plan — especially when an AI system is misbehaving in production.
MCP and A2A: The Two-Layer Protocol Stack Your Agent Architecture Actually Needs
Model Context Protocol and Agent2Agent both went under Linux Foundation governance this year. They solve different problems, and conflating them is the fastest way to a brittle integration.
The Inverse Conway Maneuver: Design the Teams You Want the Architecture to Have
Conway's Law says your system will mirror your org chart whether you plan for it or not. The inverse maneuver is deciding the architecture first and building the org chart to match.
The Governance Gap: MCP, A2A, and ACP Can Tell Agents How to Talk, Not How to Decide Together
A June 2026 gap analysis checked five agent protocols against six governance primitives. Voting and dissent preservation were absent from every single one.
The Eight Fallacies of Distributed Computing, Rediscovered by Every AI Team
Peter Deutsch's list is nearly 30 years old and still describes almost every production incident I've seen in AI systems — because agentic architectures are distributed systems wearing a trench coat.
The Eval Pyramid: Most Teams Only Built the Top Layer
The test pyramid told us to write lots of cheap unit tests and few expensive end-to-end ones. AI teams inverted it by accident — a handful of slow, expensive evals and nothing underneath.
CQRS and Event Sourcing: The Only Honest Way to Answer "What Did the Agent Actually Do?"
When an agent's decision gets questioned six weeks later, a mutated database row has already thrown away the answer. Command Query Responsibility Segregation and event sourcing don't.
Context Engineering: Memory Just Became a First-Class Architectural Component
2026 is the year agent memory got its own benchmark suite and its own taxonomy. Stanford and SambaNova's ACE pattern shows what happens when you stop summarizing context and start versioning it.
CAP and PACELC: The Trade-off You're Making Whether You Name It or Not
Every distributed data store behind an AI system already picked a point on the CAP/PACELC trade-off — usually by default, rarely on purpose. Here's how to make that choice deliberately.
The C4 Model: Stop Drawing One Diagram to Answer Four Different Questions
Simon Brown's Context/Container/Component/Code model, and why most architecture diagrams fail because they try to answer a executive's question and an engineer's question on the same page.
Bounded Context: Why Your Agents Keep Disagreeing About What a "Customer" Is
Domain-Driven Design's bounded context is the reason a booking service, a support bot, and a billing agent can use the same word to mean three different things — and why that's correct.
Wardley Mapping: Know What to Build, Buy, and Let Commoditize
Cynefin tells you how to approach a system. Wardley Mapping tells you where to spend your engineering effort at all — and most AI teams are building custom on things about to become a utility.
AI Governance Isn't a Document — It's an Architecture Decision
The regulatory floor moved twice this year. Here's what's actually converging across the EU AI Act, US state law, and ISO 42001 — and how to architect for it instead of retrofitting it.
Clear, Complicated, Complex, Chaotic: Using Cynefin to Decide How to Build
Not every system deserves the same design process. The Cynefin framework gives you a fast way to tell which domain you're actually in — and AI systems make the mistake of misreading it expensive.
What the 2026 Stanford AI Index Actually Means for Architects
Stanford HAI's 2026 AI Index is 400+ pages. Here's the subset that should change how you design AI systems — compute, cost, benchmarks, and the failure modes nobody benchmarks for.
Designing Scalable RAG Architectures
Most RAG demos fail in production for the same handful of architectural reasons. Here's the reference design I reach for.
The Solution Architect's Guide to LLMOps
LLMOps isn't MLOps with a new logo. Here's what actually changes when your production model is a black-box LLM behind an API.
Why Every AI System Needs a Reference Architecture
Without a reference architecture, every new AI feature reinvents retrieval, guardrails, and observability from scratch. Here's how to fix that.