Reminder: 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
Architectural patterns for modular monoliths that enable fast flow
Tuesday, September 10, 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
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
You Might Also Like
AI + high-stakes poker + Google's prompt cheat sheet
Tuesday, October 8, 2024
and a google prompt cheat sheet ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
👍 How My Phone Became My Favorite Game Console — Why Desktop Linux Matters
Tuesday, October 8, 2024
Also: iPhone Mirroring Is Here and Mostly Works, and More! How-To Geek Logo October 8, 2024 Did You Know At the end of the song "Sweet Child O' Mine," found on Guns N' Roses'
Software Testing Weekly - Issue 240
Tuesday, October 8, 2024
How Sonos Lost $200M: A Hard Lesson in Quality 🚨 View on the Web Archives ISSUE 240 October 8th 2024 COMMENT Welcome to the 240th issue! Back in June, I shared with you about the big problem with a new
Immutable Types, DuckDB & Pyodide, Free Threaded, and More
Tuesday, October 8, 2024
Differences Between Python's Mutable and Immutable Types #650 – OCTOBER 8, 2024 VIEW IN BROWSER The PyCoder's Weekly Logo Differences Between Python's Mutable and Immutable Types In this
Ranked | The Costliest Hurricanes to Hit the U.S. ☔
Tuesday, October 8, 2024
As of 2023, Hurricane Katrina is the costliest natural disaster in US history, causing over $200 billion in damages in 2024 dollars. View Online | Subscribe | Download Our App Presented by: NEW REPORT:
Daily Coding Problem: Problem #1572 [Easy]
Tuesday, October 8, 2024
Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Yelp. Given a mapping of digits to letters (as in a phone number), and a digit string,
The Race for Server Space
Tuesday, October 8, 2024
Apple's Leak, Disney's Star Wars, Google's Epic Fail, OpenAI's Space Race The Race for Server Space Apple's Leak, Disney's Star Wars, Google's Epic Fail, OpenAI's Space
Microsoft goes Go for SQL Server's CLI
Tuesday, October 8, 2024
Plus new ways to deploy Go apps, reflecting on reflection, and Windows gets high resolution timers in Go. | Together with Frontend Masters logo #526 — October 8, 2024 Unsub | Web Version Go Weekly
⚙️ Nvidia's new Agents
Tuesday, October 8, 2024
Plus: Chipmaker delivers 100k GPUs
How Does Visual Capitalist Work With Clients? 💪
Tuesday, October 8, 2024
Here's how organizations can partner with Visual Capitalist to leverage world-class data storytelling, and its strong audience and reach. View Online | Subscribe | Download Our App For 13 years,