Architecture
Service boundaries, event-driven systems, CQRS, API governance — decisions made at scale and what they cost later.
8 posts
The harness is the asset: a product lifecycle run as agents
An agent is a composition — persona, rules, skills, tools — and all of it belongs in the repository. Notes on running a whole product development lifecycle as cooperating agents, and on when parallel is the wrong call.
The substation is becoming a server, and the grid is becoming a platform
I started my career writing software for electricity distribution utilities, where the substation was hardware you configured. Two launches this February make clear that assumption is inverting — and the hard part is the same one it has always been.
The software-defined vehicle is an integration problem wearing a compute costume
Zonal architecture, service-oriented in-vehicle networks and central compute get the attention. The thing that actually decides whether a programme ships is whether four organisations can agree on an interface.
Banking infrastructure changed more in five years than the previous twenty
Real-time rails, richer message formats and tokenised credentials each look like a migration project. Together they invalidate assumptions the core was built on — starting with the idea that settlement happens later.
Healthcare finally has interoperability. It turns out that was the easy part
FHIR won, national exchange frameworks exist, and data moves between organisations that used to fax. The remaining problems are semantics, workflow and the fact that a shared record is not a shared understanding.
Six agents, one migration: what a gated pipeline actually looks like
A multi-agent system that migrates services off a legacy workflow engine. The code generation was never the hard part — the approval gates and the state model were.
The seam is the system
A service boundary is a bet about which parts of your business change together. Most teams place that bet by accident, along the shape of the org chart that existed the week the project started.
CQRS was the answer. What was the question?
Splitting reads from writes fixed a real problem under real telemetry load. It also cost more than the pattern's advocates admit — here is the ledger, both columns.