Skip to content

Architecture

Modular Monolith Boundaries Done Wrong

So you built a modular monolith. You have a clean structure. Different projects. Everything broken into modules. But somehow, when you make a change, it still ripples through the rest of your system. Why? Because its highly coupled. 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. As an example, let’s say you have an HR module. You change an employee’s work status, and all of a sudden, that affects authentication. Or you’re in a transportation system, and you change a vehicle’s compliance status, and… Read More »Modular Monolith Boundaries Done Wrong

Scaling Software Architecture Without Overengineering

Your system has 500 users and also has 20 microservices, including the gauntlet of Kubernetes, a message broker, distributed tracing, multiple different databases, and a pretty dashboard that probably nobody looks at. Someone will ask the question: why is this so complicated for 500 users? And usually the answer is, “Well, we’re building for scale.” No. No, you’re not. You’re building for scale you don’t have yet. That’s a lot of extra complexity. Scaling software architecture is important to think about. But there’s a difference between actually implementing for scale and giving yourself the options to scale when you need… Read More »Scaling Software Architecture Without Overengineering

Just Use Postgres as a Queue?

I’ve noticed a trend, and a lot of people are saying the same thing: just use Postgres as a queue. No Kafka, no Redis, no RabbitMQ, just one database for everything. And I totally get it. I get the appeal. There are fewer moving parts. There is less infrastructure. There is only one thing to run. But what feels simple at the very beginning can often lead to a lot of complexity later. It’s like using Excel when you really need a database. Sure, it holds data. You understand Excel well. But are you really about to build a relational… Read More »Just Use Postgres as a Queue?