Skip to content

Read Replicas Are NOT CQRS (Stop Confusing This)

What’s overengineering? Is the outbox pattern, CQRS, and event sourcing overengineering? Some would say yes. The issue is: what’s your definition? Because if you have that wrong, then you’re making the wrong trade offs. YouTube Check out my YouTube channel, where I post all kinds of content on Software Architecture & Design, including this video showing everything in this post. “The outbox pattern is only used in finance applications where consistency is a must. Otherwise, it’s just overengineering.” Not exactly. “CQRS is overengineering and rarely used even at very high scale companies. One master DB for writes and a bunch of replica… Read More »Read Replicas Are NOT CQRS (Stop Confusing This)

Sponsor: Do you build complex software systems? See how NServiceBus makes it easier to design, build, and manage software systems that use message queues to achieve loose coupling. Get started for free.

Learn more about Software Architecture & Design.
Join thousands of developers getting weekly updates to increase your understanding of software architecture and design concepts.


Follow @CodeOpinion

Your Idempotent Code Is Lying To You

You have some code that handles placing an order. This could be an HTTP API or a message handler. You made it idempotent. You added a unique constraint on some kind of message ID. And somehow… you still end up double charging the customer’s credit card. YouTube Check out my YouTube channel, where I post all kinds of content on Software Architecture & Design, including this video showing everything in this post. Idempotent You did everything right. You have idempotency. You have an inbox table and a unique constraint on that message ID. Your handler should be exactly once, right? Wrong. And… Read More »Your Idempotent Code Is Lying To You

You Can’t Future-Proof Software Architecture

“Future proof your architecture” sounds good. But the reality is you can’t future-proof Software Architecture. When you really think about it, the future is just what’s breaking assumptions. You can’t really future-proof that. What you can do is contain changes so they don’t ripple through your system. Where people go wrong is trying to future-proof with abstractions everywhere. What you really want to be doing is controlling the blast radius, meaning controlling where change goes. YouTube Check out my YouTube channel, where I post all kinds of content on Software Architecture & Design, including this video showing everything in this post. I’m… Read More »You Can’t Future-Proof Software Architecture