Skip to content

Vertical Slices doesn’t mean “Share Nothing”

How do you share code between vertical slices? Vertical slices are supposed to be share nothing, right? Wrong. It is not about share nothing. It is about sharing the right things and avoiding sharing the wrong things. That is really the point. 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. Boundaries If you have watched my videos before, you probably know I talk a lot about boundaries. A vertical slice is not that different from a logical boundary. What matters here is that a… Read More »Vertical Slices doesn’t mean “Share Nothing”

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)

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