Architectural patterns for modular monoliths that enable fast flow
You are receiving this email because you subscribed to microservices.io
This month, I'm teaching an online public workshop Architecting for fast, sustainable flow: enabling DevOps and Team Topologies: 9am-11am CET/4pm-7pm Korea Time, September 23th-25th, 2024 20% discount for groups of 6 or more.
In November, I'll be teaching workshops in Berlin and Milan. If you would like me to visit your company for workshop or architecture review, please contact me.
In this article, I describe three architectural patterns for modular monoliths. These patterns are based on my experience developing both monoliths and microservices.
Designing monoliths for fast flow
The primary concerns when using the monolithic architecture pattern are:
- Managing the complexity of a large codebase
- Maximizing team autonomy despite the single code base
- Accelerating the single deployment pipeline in order to still provide fast feedback
There are three patterns that address these concerns:
- Modular monolith, aka. domain-oriented monolith
- Domain module API
- Domain API build module
Let’s first look at the modular monolith pattern.
Pattern: Modular monolith, aka. domain-oriented monolith
Organize a monolith as a collection of loosely coupled, domain modules that are based on DDD subdomains/bounded context rather than technical layers in order to manage complexity and improve team autonomy.
For more information, see The modular monolith, which introduces the basic idea, and No such thing as a modular monolith, which explains why the term ‘modular monolith’ is a misnomer.
Pattern: Domain module API
Encapsulate each domain module’s implementations details, which includes its database schema, behind a stable, facade-style API in order to reduce loose design-time coupling between modules and improve testability.
For more information, see Encapsulating the customers
domain behind a facade.
Pattern: Domain API build module
Define a separate build module (e.g. Gradle subproject) for the domain module’s API, which the domain module’s clients depend upon (rather than the implementation), in order to reduce build-time coupling and accelerate the deployment pipeline.
For more information, see Using domain API modules to reduce build-time coupling.
Want to learn more
You will learn about these and other patterns in my Architecting for fast flow: enabling DevOps and Team Topologies workshop, 9am-11am CET/4pm-7pm Korea Time, September 23th-25th, 2024. 20% discount for groups of 6 or more.
Need help with accelerating software delivery?
I’m available to help your organization improve agility and competitiveness through better software architecture: training workshops, architecture reviews, etc.
Learn more about how I can help
Older messages
Reminder: Architecting microservices for fast, sustainable flow
Thursday, September 5, 2024
You are receiving this email because you subscribed to microservices.io This month, I'm teaching an online public workshop Architecting for fast, sustainable flow: enabling DevOps and Team
Architecting microservices for fast, sustainable flow
Tuesday, September 3, 2024
You are receiving this email because you subscribed to microservices.io This month, I'm teaching an online public workshop Architecting for fast, sustainable flow: enabling DevOps and Team
Architecting monoliths for fast, sustainable flow
Thursday, August 22, 2024
You are receiving this email because you subscribed to microservices.io Next month, I'm teaching an online public workshop Architecting for fast, sustainable flow: enabling DevOps and Team
Reminder: Why architecting for fast, sustainable flow is important
Tuesday, August 20, 2024
You are receiving this email because you subscribed to microservices.io Next month, I'm teaching an online public workshop: Architecting for fast, sustainable flow: Enabling DevOps and Team
Why architecting for fast, sustainable flow is important
Tuesday, August 20, 2024
You are receiving this email because you subscribed to microservices.io Next month, I'm teaching an online public workshop: Architecting for fast, sustainable flow: Enabling DevOps and Team
You Might Also Like
Daily Coding Problem: Problem #1703 [Hard]
Thursday, February 27, 2025
Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Goldman Sachs. Given a list of numbers L , implement a method sum(i, j) which returns
Charted | The $124 Trillion Global Stock Market, Sorted by Region 📊
Thursday, February 27, 2025
In this graphic, we show the world's 48000 publicly-traded companies, collectively valued at $124 trillion. View Online | Subscribe | Download Our App Enjoying Visual Capitalist? You'll love
AI CAPTCHA Fails Are the Internet’s New Comedy Show!
Thursday, February 27, 2025
Top Tech Content sent at Noon! Boost Your Article on HackerNoon for $159.99! Read this email in your browser How are you, @newsletterest1? 🪐 What's happening in tech today, February 27, 2025? The
Say Goodbye to Type Erasure
Thursday, February 27, 2025
View in browser 🔖 Articles Practical Kotlin: When and How to Use inline reified, noinline, and crossinline Master Kotlin's inline reified functions to tackle type erasure and boost performance!
SRE Weekly Issue #464
Thursday, February 27, 2025
View on sreweekly.com A message from our sponsor, incident.io: For years, on-call has felt more like a burden than a solution. But modern teams are making a change. On Feb 26 at 1 PM EST, hear why—and
Hands On: New VS Code Insiders Build Creates Web Page from Image in Seconds, More
Thursday, February 27, 2025
Home | News | How To | Webcasts | Whitepapers | Advertise .NET Insight February 27, 2025 THIS ISSUE SPONSORED BY: ■ Visual Studio Live! Las Vegas: .NET Developer Training Conference ■ VSLive! 4-Day
Re: Tomorrow's Password Class: How to sign up!
Thursday, February 27, 2025
Hi there, Do you reuse passwords? Do you struggle to remember unique passwords across accounts? Have you tried setting up a password manager but found it to be a hassle? You might not realize how
Documenting Event-Driven Architecture with EventCatalog and David Boyne
Thursday, February 27, 2025
If you're wondering on how to document Event-Driven Architecture, or you don't know that you should, I have something for you. We discussed with David Boyne, why data governance practices and
wpmail.me issue#708
Thursday, February 27, 2025
wpMail.me wpmail.me issue#708 - The weekly WordPress newsletter. No spam, no nonsense. - February 27, 2025 Is this email not displaying correctly? View it in your browser. News & Articles Shaping
Hackers stole 1Password logins - here's how
Thursday, February 27, 2025
Amazon AI races ahead; Research agents; Smartwatch trade-in -- ZDNET ZDNET Tech Today - US February 27, 2025 thief stealing passwords Hackers stole this engineer's 1Password database. Could it