🆕 The observability bill
Observability isn't free — sampling, cardinality and retention are all decisions. How to buy the signal you need without paying for the noise you don't.
Read it → https://rj-cooper.co.uk/posts/the-observability-bill/
🆕 The observability bill
Observability isn't free — sampling, cardinality and retention are all decisions. How to buy the signal you need without paying for the noise you don't.
Read it → https://rj-cooper.co.uk/posts/the-observability-bill/
"Architecture is about the important stuff — whatever that is."
New post on why "it depends" isn't a cop-out: the skill is naming what it depends on, and what you've chosen to optimise for.
🆕 Modular microliths
The microservices-versus-monolith war is tired. The systems I've actually shipped are usually a bit of both — and on purpose.
🆕 Bounded contexts and aggregates
The two ideas from Domain-Driven Design you can actually use on Monday — where to draw your boundaries, and what you can change in one go.
Read it → https://rj-cooper.co.uk/posts/bounded-contexts-and-aggregates/
🆕 Proving it was Azure's fault, not ours
A deployment keeps failing intermittently and Azure is the suspect. How to prove it's the platform, not your code — and how to know when you've proven it.
Read it → https://rj-cooper.co.uk/posts/proving-it-was-azures-fault-not-ours/
🆕 Eventual consistency you can explain to the business
Eventual consistency sounds like an excuse for wrong data. In the language of money, letters and obligations, it's just how the business already works.
Read it → https://rj-cooper.co.uk/posts/eventual-consistency-you-can-explain-to-the-business/
🆕 “Exactly once” is a lie
“Exactly-once delivery” is a promise no broker can keep. What you actually get — and can build on — is at-least-once delivery plus idempotent consumers.
Read it → https://rj-cooper.co.uk/posts/exactly-once-is-a-lie/
🆕 The dual-write problem & the outbox pattern
Saving to your database and publishing a message look like one step. They're two, and the gap between them is where you lose data. The outbox pattern closes it.
Read it → https://rj-cooper.co.uk/posts/the-dual-write-problem-and-the-outbox-pattern/
#Architecture #Integration #Microservices #Technicaltuesday #Messaging
🆕 Observability as a first-class concern
Observability isn't an ops bolt-on you add after go-live — it's an architectural decision you make at design time, or pay for in the dark later.
Read it → https://rj-cooper.co.uk/posts/observability-as-a-first-class-concern/
🆕 Azure is insecure by default (by design)
Azure's defaults optimise for working in five minutes, not being safe in five minutes. The secure posture is opt-in — and closing that gap is your job.
Read it → https://rj-cooper.co.uk/posts/azure-is-insecure-by-default-by-design/
🆕 Feature flags as an architectural tool
A feature flag looks like an if statement with a dashboard. It's really an architectural decision — you've split deploy from release and made it reversible.
Read it → https://rj-cooper.co.uk/posts/feature-flags-as-an-architectural-tool/
🆕 The risk equation
A forty-year-old piece of security maths that tells you whether to fix a risk, insure it, avoid it, or live with it — and how to show your working.
🆕 How much security is too much
Nobody got fired for adding another control. But security you can't afford to run, or that everyone routes around, isn't security — it's theatre with a budget.
Read it → https://rj-cooper.co.uk/posts/how-much-security-is-too-much/
🆕 Zero-downtime by design
Zero-downtime isn't a feature you switch on — it's a property you design for, one backwards-compatible step at a time, using expand/contract.
Read it → https://rj-cooper.co.uk/posts/zero-downtime-by-design/
🆕 The five barriers to digital transformation aren't technical
When a digital transformation stalls, everyone blames the tech. The real barriers are almost never technical — and pretending otherwise is how you keep failing.
Read it → https://rj-cooper.co.uk/posts/the-five-barriers-to-digital-transformation/
🆕 DevOps, SecOps, DevSecOps
Underneath three interchangeable-sounding buzzwords is a single architectural decision: where should the work live, and who owns the outcome when it goes wrong?
Read it → https://rj-cooper.co.uk/posts/devops-secops-devsecops/
🆕 Ethics is an architecture problem
We hunt for the person who was unethical and rarely find one — because most of what a system does to people was designed in at the whiteboard, not acted out.
Read it → https://rj-cooper.co.uk/posts/ethics-is-an-architecture-problem/
🆕 What your C4 diagrams don't tell you
A C4 diagram shows you every box and every arrow in a system — and stays completely silent on the only questions that matter when someone comes to change it.
Read it → https://rj-cooper.co.uk/posts/what-your-c4-diagrams-dont-tell-you/
🆕 Non-functional requirements are the architecture
Two teams build the same feature list and ship completely different systems — because the non-functional requirements, not the features, decide the shape.
Read it → https://rj-cooper.co.uk/posts/non-functional-requirements-are-the-architecture/
🆕 I was an enterprise architecture sceptic
I wrote off enterprise architecture as big-company ceremony — until a greenfield rewrite with no governance changed my mind, and not the way vendors would like.
Read it → https://rj-cooper.co.uk/posts/enterprise-architecture-sceptic/
🆕 Deployment coupling
You split into services so each could ship alone. Then a shared contracts package quietly stitched the deployments back together — that's deployment coupling.
Read it → https://rj-cooper.co.uk/posts/deployment-coupling/