Microservice Architecture Without Microservice Overhead

Every week in my Tuesday Lunch & Learn livestream, we choose a useful software development skill, define a challenge related to that skill, and solve the challenge live. This week, we’re looking at microservice architecture.

Microservice architecture is a great way to partition code so that teams can work independently. It’s effective at preventing the “big ball of mud” problem that can plague large monolithic codebases.

But microservice architecture comes at a high cost. Because all communication happens via network calls, microservice architecture introduces a lot of complexity in the form of error handling and distributed transactions.

What if there was a way to get the advantages of microservice architecture without all the added complexity? In this episode, we look at “microliths,” a way to reduce overhead while still retaining the benefits of a microservice-based design. We cut the size of our codebase in half and increase performance across the board.

To follow along, download the code from GitHub and check out the 2020-09-29 tag. To see the final result, check out the 2020-09-29-end tag or view it on GitHub.

Visit the Lunch & Learn archive for more.

If you liked this entry, check out my best writing and presentations, and consider subscribing to updates by email or RSS.