Skip to content

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

Uncategorized

Why “Microservices” Debates Miss the Point

DHH had a take on microservices in small teams that is getting a lot of attention. And while I agree with what he’s pointing out, all of these types of conversations miss what actually matters. This is not about microservices or a monolith or small teams. Now what’s implied here is microservices is much more difficult to understand the full context. I agree, given how most people think of microservices. You can think, well, I got all these services and yeah, I don’t know how anything happens end to end, and what service interacts with what service. Yes, that’s a… Read More »Why “Microservices” Debates Miss the Point

Why Separate Databases? Explaining Like You’re Five

I want to give you three different examples and reasons why you might want to separate customers and orders into different databases. The person who asked the question left out a lot of nuance and context, so I am going straight to the point. You will find all three examples boil down to the same underlying reason. 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. 1. Third party systems: sometimes the data isn’t even in the same system One reason to separate customers and… Read More »Why Separate Databases? Explaining Like You’re Five

Distributed Systems Mistakes Nobody Warns You About: Consistency

One of the most common and very overlooked issues when writing a distributed system is consistency. You have one thing happening in one part of your system that triggers something else to happen in another part of the system, except it doesn’t happen. And that can be a nightmare to deal with. This problem is incredibly overlooked but incredibly common. Let’s dive into an example to illustrate what I mean. 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. Example: Asynchronous Processing Here’s a simple… Read More »Distributed Systems Mistakes Nobody Warns You About: Consistency