"You shouldn't start a new project with microservices, even if you're sure your application will be big enough to make it worthwhile."

— Martin Fowler

WHAT'S INSIDE

Everything you need to build and scale a modular monolith system.

Evently system architecture diagram

Modular Monoliths: Introduction

We'll start with the foundations. Building a modular monolith requires a deep understanding of monoliths and microservices. Modular monoliths take the best of both worlds.

START WATCHING
Course snippet

Defining Module Boundaries

You will learn how to apply Domain-Driven Design and Event Storming to explore potential domain boundaries. This is where we'll introduce the sample application we will build.

START WATCHING
Course snippet

Module Cross-Cutting Concerns

How do you apply cross-cutting concerns without coupling the modules? Here, you're going to learn how to isolate dependency injection, configuration, and more for each module.

START WATCHING
Course snippet

Module Communication

We're going to explore the two ways how modules can communicate. This will determine how flexible your system will be for future changes.

START WATCHING
Course snippet

Authentication & Authorization

We can't build a production-ready system without robust authentication and authorization. Here, we will introduce token-based authentication and RBAC (Role-Based Access Control).

START WATCHING
Course snippet

Architecture Enforcement

What good is a shiny software architecture if we can easily break it? You'll learn 3 techniques you can apply to ensure your team sticks to the modular monolith architecture.

START WATCHING
Course snippet

Reliable Messaging: Outbox and Inbox

What happens if we fail to publish a message? How do we apply temporal decoupling? How do we implement idempotency? You'll learn all of this and so much more.

START WATCHING
Course snippet

Event-Driven Architecture

We're going to explain what it means to be event-driven. You will learn how the reactive programming paradigm can help you implement a robust, loosely coupled system.

START WATCHING
Course snippet

Testing Modular Monoliths

How can you have complete confidence in your system? I'll show you a powerful approach for testing modular monoliths. It's almost like running our system in the real world.

START WATCHING
Course snippet

Microservices: Extracting Modules

Finally, I'm going to present how to transition from a modular monolith to microservices. We will also introduce an API Gateway and distributed messaging system.

START WATCHING
Course snippet

Cloud Deployment, .NET AspireCOMING SOON

Building an application that runs smoothly on your machine is great. But deploying it to production? That's a different challenge. You'll learn how to use .NET Aspire to easily deploy your application to Azure.

START WATCHING

More Than Just Theory

Modular Monolith Architecture includes more than just theoretical discussion.

We're going to build a production-ready system from scratch. This includes dozens of API endpoints, 50+ use cases, and 6000+ lines of code.

I built the course with bonus resources to make sure you apply what you learn.

Course snippet

BONUS COURSE #1

Modular Monoliths: CQRS With MongoDB

If you're wondering how to introduce a document database to a modular monolith, this bonus course contains the answers.

Course snippet

BONUS COURSE #2

Modularize Your Monolith: A Quick Guide

To help you modularize an existing monolith application, I've bundled in a complete bonus course that walks you through the basics.

After Completing This Course You Will

  • Confidently use Modular Monoliths to build robust and scalable systems
  • Learn how to create an architecture that stands the test of time
  • Understand how to implement an event-driven system
  • Easily migrate to microservices (if you need to)

What Students Are Saying About MMA

DOMINIQUE EGA avatar
DOMINIQUE EGA
I'm developing a relatively large project from scratch, and this architecture lets me break the project down into logical bricks without the constraint of microservices. I also intend to migrate a microservice project to this architecture. What I like about this architecture is that you get the advantages of microservice without the disadvantages, and for most projects that's more than enough.
Joe Washek avatar
Joe Washek
I've never written a decoupled application that communicates via event messaging before. This course has turned out to be perfect! My favorite thing about this architecture is you can prepare your app for the future without excessive premature optimization. I will likely purchase more of Milan's courses.
Alexandre Luis Mancini avatar
Alexandre Luis Mancini
I am a CTO of a SaaS Solution (ERP) and we are being challenged to integrate our legacy solutions with a lot of others partners solutions. This course give me the tools to implement ways to get it done.
Stephen Handley avatar
Stephen Handley
This is a very detailed, comprehensive and highly relevant course for anyone in the .NET space working on business applications today. It covers theory with best practice implementations in .NET and related technologies with a very well-conceived case study that exposes numerous common software challenges. Modular Monolith Architecture is a sweet spot on a spectrum with ball-of-mud monolith at one end and many microservices at the other. At the heart of this approach are well defined modules and channels of communication between them. These structural elements define correct dependencies and promote loose coupling which ultimately provides software more capable of enhancement as business demands change. I thoroughly recommend taking this course to enhance your skills and technical proficiency.
Rudy Cortembert avatar
Rudy Cortembert
I completed both PCA and MMA courses. I really enjoyed the content and the structure of these courses! It covers 100% back-end construction (design, coding and testing). I recommend these courses to anyone willing to learn how to create state-of-the-art applications with .NET!
Florian Draxler avatar
Florian Draxler
In my work as a fresh Junior C# dev, it helped in many points regarding structuring services into separated modules and how to handle the communication in a module itself. For me personally I can listen very well to his voice and his explanation style, so to speak.
Tomasz Rutkowski avatar
Tomasz Rutkowski
Exceptional value. The course bridges theory and practice by tackling real-world problems. I appreciate the in-depth explanation. I love Milan's straight-to-the-point flow. He provides a clear progression from basic concepts to production-ready solutions. At its price point, it's an outstanding investment for developers looking to build maintainable, scalable systems.
Charlie Krambeer avatar
Charlie Krambeer
The modular monolith approach, as brilliantly explained by Milan, helps you build better software by promoting clear separation of concerns, making it easier to manage complexity, maintain code quality, and scale effectively. The best part is its balance of simplicity and flexibility, enabling teams to create well-structured, maintainable applications without the immediate overhead of microservices.
Anatoly Sorokin avatar
Anatoly Sorokin
Great explanation of the concepts! I really like the structure of this course. Additionally, I’ve learned about more tools that I can use in my daily work, such as Seq for log monitoring and Keycloak as an Identity Provider. With Keycloak, you don’t need to implement an Identity Provider yourself.
Blake T avatar
Blake T
I just completed Milan Jovanovic’s Modular Monolith Course, and I really enjoyed the course and learned a lot. I’m very happy I took this course. I learned several new things, learned about what a modular monolith is, rules to adhere to, great patterns to re-use code between modules, communication, boundaries, event-driven architectures, and ways to break up and organize your Visual Studio solution. This course was well worth the time. I strongly recommend this to senior software engineers & architects that are new to modular monoliths, event-driven architecture, and clean architecture concepts. Thanks for this course, my skills and knowledge improved from taking this course.
Neil Bryan Abarabar avatar
Neil Bryan Abarabar
MMA course really help me to generate better, readable and testible code.. also with the technic that milan teach for each and every concept of MMA. the only thing i found it hard to grasp is about RBAC which makes more complicated code. but i just repeat the video for sometime and finally get it. THANKS MILAN !
Miguel Poveda avatar
Miguel Poveda
I've found immense value in this course on Modular Monolith Architecture. The clear explanations and practical guidance on module communication have been eye-opening. Understanding how to properly structure and connect modules has transformed my approach to building maintainable systems. Milan, thanks for this great job!!
Hung Chu avatar
Hung Chu
Before this course, I struggled with defining clear module boundaries in my projects. The Modular Monolith Architecture (MMA) course solved this challenge completely, providing practical guidance on both boundary definition and asynchronous module communication. The course's focus on testing and module interaction was particularly valuable. Highly recommended for developers looking to master modular system design!
Jay Giles avatar
Jay Giles
Well put together and provides great insights for building your own apps. It touches on everything you need and gives you a comprehensive foundation, along with Milan's Pragmatic Clean Architecture course, it's a great set of building blocks to work from. MMA provides a simpler approach that still provisions for evolving into micro services if the complexity becomes necessary. Keep up the great content Milan.
John Kenneth Arrojo avatar
John Kenneth Arrojo
Milan is such a great instructor. I've been to a lot of online courses and none come close to this. The course will give you detailed and practical knowledge that you can apply to your actual work. No more hello world course. You'll be able to produce production ready products after learning from Milan!
Nikola Cigula avatar
Nikola Cigula
This was by far the best course i have ever seen in software engineering. It is relevant for both beginners and seasoned veterans alike. I would highly recommend everyone to attend the course.
Mykola Kriukov avatar
Mykola Kriukov
It's the second course I'm taking from Milan and I'm so excited about it. The way it's structured, the depth of each topic and the code is simply excellent. I have so many thoughts on how I will reuse this knowledge in my day-to-day work. This course is worth every penny I spent on it! Thank you, Milan!
Fernando Ventura avatar
Fernando Ventura
The course is simply amazing, it has the facility to explain a complex subject in a simple and strongly technical C# oriented way. Milan approached the topics with an enormous ease, which allows you to absorb the knowledge very quickly. Therefore, I recommend it 100%.
Seyedarman Fatemi avatar
Seyedarman Fatemi
As a senior software engineer, I found the "Modular Monolith Architecture" course by Milan to be transformative. It provides a perfect blend of theory and hands-on practice, guiding you through the complexities of building scalable and maintainable systems. The deep dives into module communication, and transitioning to microservices, were particularly valuable. The course’s structured approach and real-world examples made complex concepts easy to grasp and apply. This is a must-have resource for anyone serious about mastering software architecture.
Admir Mujkic avatar
Admir Mujkic
Milan's course on Modular Monolith Architecture was transformative. The practical insights and hands-on exercises really helped me grasp the balance between modularity and simplicity. Now, I feel confident in designing scalable, maintainable, and high-performing software systems. Even though I keep up with new technology daily, this course is a must-have. Whether you're a senior developer or just starting with MMA in .NET, it's a game-changer for anyone aiming to build robust applications.
Marco A T Ribeiro avatar
Marco A T Ribeiro
As a C# developer with more than 20 years of experience, I can say without doubts that Milan's course on Modular Monolith Architecture is a must-have for both experienced and new developers. The course was incredibly well-structured, providing a comprehensive overview of the Modular Monolith approach and I am excited to apply these strategies to create scalable, maintainable, and efficient applications.
Saeed Adam avatar
Saeed Adam
Using Modular Monolith Architecture (MMA) helps me build better software by improving maintainability, scalability, development speed, deployment simplicity, and overall system consistency. The best thing about MMA is its balance between simplicity and modularity. It offers the ease of managing a single app with the benefits of a modular setup. Plus, it makes transitioning to microservices later a breeze if needed. It's perfect for growing teams and projects, providing flexibility, maintainability, and scalability.
Yarlen Vásquez avatar
Yarlen Vásquez
It was an extraordinary course. The way Milan introduces new concepts organically is simply remarkable. It helped me a lot in offering my clients more robust architectures with better practices, as well as enabling my team to internalize essential architectural concepts in modern back-end development.
Vaun Drex avatar
Vaun Drex
As a SE who has been less hands on and more leadership lately this was an awesome course for getting back up to speed on both the dot net platform (which is now also awesome) as well as the latest patterns, practices, coding techniques in addition to the modular monolith concept in a practical format. This is the most real world course I have ever done. No Hello World, or ToDo list here, this is a serious full scale production application that you could take to market. I can't imagine how much time and effort went into creating this but it was worth it. To that point though, if you do this course you need to put in some serious time but as I said this is a serious course for those who are prepared to commit. TBH, I was not initially sure about the cost but now I am done I realise it would have taken dozens of other courses and lots of googling to get this real world knowledge. On Modular monoliths themselves, as someone who introduced microservices into a previous tangled monomess, I learnt some of the pitfalls so this midpoint idea makes perfect sense and you are not loosing anything as you can always split them. Thank you, Milan.
Stefan Oproiu avatar
Stefan Oproiu
If you are a freelancer like me, or a software engineer at a tech company and you want to confidently recommend the Modular Monolith Architecture to your clients, get this course. It’s worth every penny.
Junior Felix Gervacio Burgos avatar
Junior Felix Gervacio Burgos
I am immensely grateful for the opportunity to take this course. The level of expertise and depth of knowledge shared was truly exceptional. The course covered concepts and topics that I had been seeking to understand for a long time. Thanks to this course, all my doubts have been cleared, and I feel much more confident in my abilities. Thank you for imparting such valuable knowledge!
Liviu Birjega avatar
Liviu Birjega
The course provides comprehensive and exceptional coverage of the subject. The dedication and effort invested in its creation are commendable. It adopts a forward-thinking approach, relevant to a wide range of software systems, demonstrating a progressive step in the introduction of new methodologies and techniques. This course is a testament to how educational content should be curated for its audience. Thnak you, Liviu Birjega
Nery Brugnoni avatar
Nery Brugnoni
This course is awesome. Milan explanations hit the right balance between flying over topics we all should know and diving deep into more intricate details. The information and the pace in which is delivered and structured chapter by chapter is on point. Highly recommended!
Joe Crowley avatar
Joe Crowley
I have been doing software for 30 years. This is one of the best courses that I have ever seen and the end result is phenomenal.
Anton Martyniuk avatar
Anton Martyniuk
This is truly a master-piece course. Milan explained everything in details what you need to know to build a successful and well-designed Modular Monolith Application. I really enjoyed watching 12h+ of content. The quality of this course is on a top level. For sure this is the best Modular Monolith course you can find. The quality of this course is confirmed in the "10 - Microservices: Extracting Modules" chapter where a dedicated Module of the Monolith system is extracted into a seperate microservice in just one hour. I also like that this course is charged with so valuable information such as: writing tests, using OTEL, Jaeger and YARP. I definetely recommend this course for everyone who wants to learn how to build Modular Monolith applications, how to monitor the system, get the guidelines how to build a high quality software with a great design and testability. I can confirm that this course will be valuable for any level of developers, including seniors and lead devs.
Gerardo Garnica avatar
Gerardo Garnica
Milan Jovanovic's MMA is an awe-inspiring course, the best I have taken. The MMA course offers a comprehensive framework that deeply covers different advanced topics, enabling developers to create robust and scalable software solutions with best practices and a set of cross-cutting, cross-module communication, and authentication + authorization tools that completely enhance the development experience. I strongly recommend the course to anyone who wants to build quality software. PS: The course lessons are straightforward to follow for non-native English speakers.
Kevin Kraemer avatar
Kevin Kraemer
Milan's modular monolith architecture course taught me invaluable lessons, enriching my understanding and paving the way for me to build better systems.
Emanuel Rodriguez avatar
Emanuel Rodriguez
So far, every module has a really nice topic to discuss. The best one is module communication patterns. I enjoyed the async communication approach with MassTransit. Great work, Milan!
Tiago Santos avatar
Tiago Santos
This masterpiece course is packed with valuable information, providing everything you need to know to build a successful Modular Monolith application. The instructor's expertise and detailed explanations cleared up all my doubts and significantly boosted my confidence. This is the best Modular Monolith course you can find, and I highly recommend it to developers of all levels who want to build high-quality software with a great design.
Vladislav Antonyuk avatar
Vladislav Antonyuk
Before this course, I was not familiar with Modular Monolith Architecture. This course describes in depth important aspects that can be applied to any architecture, like the Inbox/Outbox pattern, cross-service communication, etc. The best thing about MMA is a simple deployment with still low coupling between modules.
Fernando Calmet avatar
Fernando Calmet
This course is very complete. We can learn about advanced topics in .NET which will allow us to develop robust and quality solutions. In my personal opinion this is my favorite course. Particularly the content that Milan makes is wonderful. His work is admirable and I wish him the best of success. Thank you.
Diego Modolo Ribeiro avatar
Diego Modolo Ribeiro
I've learned so much from the first 5 chapters of this course. One thing that I always missed in my studies was to know how a pro developer address some concerns, and Milan's course just gave me so much more confidence. Thank you so much for this course.
Enrique Inca avatar
Enrique Inca
The Monolith Modular Architecture course adopts a practical approach without neglecting the relevance of a solid theoretical foundation on the concepts covered by this software development approach. In addition, it clarifies why it is crucial to consider this architecture before implementing a microservices architecture.
START WATCHING
Course student
Course student
Course student
Course student
Course student
Course student
4.9/5 from 1,800+ students

Ready to Join Modular Monolith Architecture?

MMA

$297

10 in-depth chapters

12+ hours of video training content

59 high-quality lessons

Complete project source code

Cloud Deployment (soon)

Bonus "Modular Monoliths: CQRS With MongoDB" Course

Lifetime updates

BEST VALUE

MMA + Community

$497

10 in-depth chapters

14+ hours of video training content

66 high-quality lessons

Complete project source code

Cloud Deployment (soon)

Microservices Deployment (soon)

Bonus "Modular Monoliths: CQRS With MongoDB" Course

Bonus "Modularize Your Monolith: A Quick Guide" Course

Community access

Lifetime updates

It's the second course I'm taking from Milan and I'm so excited about it. The way it's structured, the depth of each topic and the code is simply excellent. I have so many thoughts on how I will reuse this knowledge in my day-to-day work. This course is worth every penny I spent on it!

Review author
Mykola KriukovSENIOR SOFTWARE ENGINEER

The Full Curriculum

Introduction (9m)

  • Agenda, Your Instructor, Course StructureFREE PREVIEW
  • How To Use This Course

Modular Monoliths: Introduction (46m)

  • Introduction, Monoliths and Microservices
  • Modular Monoliths
  • Module Constraints

Defining Module Boundaries (1h 47m)

  • Domain-Driven Design, Event Storming, Bounded ContextsFREE PREVIEW
  • Introducing Evently Sample ApplicationFREE PREVIEW
  • Building the First Module
  • Refactoring to Clean Architecture
  • Events Module Review

Module Cross-Cutting Concerns (1h 13m)

  • Cross-Cutting ConcernsFREE PREVIEW
  • Dependency Injection
  • Module Configuration
  • Structured Logging With Serilog and Seq
  • Exception Handling
  • Validation With FluentValidation
  • Distributed Caching With Redis
  • Health Checks
  • Automatically Registering Endpoints

Module Communication (1h 22m)

  • Module Communication PatternsFREE PREVIEW
  • Publishing Domain Events
  • Introducing the Users Module
  • Scaffolding the Ticketing Module
  • Synchronous Communication
  • Duplicating Data Between Modules
  • Asynchronous Communication
  • Eventual Consistency: Introduction

Authentication & Authorization (1h 23m)

  • Authentication & Authorization
  • Keycloak Identity Provider Setup
  • Token Based Authentication
  • User Registration With Keycloak
  • RBAC Authorization

Architecture Enforcement (35m)

  • Architecture Enforcement
  • Modular Architecture
  • Architecture Testing

Reliable Messaging: Outbox and Inbox (1h 10m)

  • Reliable Messaging
  • Outbox Pattern
  • Outbox: Idempotent Consumers
  • Inbox Pattern

Event-Driven Architecture (1h)

  • Event-Driven ArchitectureFREE PREVIEW
  • Event Notifications
  • Event-Carried State Transfer
  • Materialized Views and CQRS
  • Saga Pattern, Orchestration

Testing Modular Monoliths (1h 14m)

  • Testing Modular Monoliths
  • Unit Testing
  • Integration Testing
  • System Integration Testing
  • Automated Testing in CI/CD Pipelines

Microservices: Extracting Modules (1h 24m)

  • Microservices Benefits, Extracting ModulesFREE PREVIEW
  • Distributed Tracing, OpenTelemetry
  • Distributed Messaging With RabbitMQ
  • API Gateways, Introducing YARP
  • Extracting Modules to Microservices

Cloud Deployment, .NET Aspire (coming soon)

  • Introduction
  • Integrating .NET Aspire
  • Deploying to Azure
  • Microservices Deployment (Community edition)

BONUS - Modular Monoliths: CQRS With MongoDB (40m)

  • Introduction, Document Databases
  • Implementing CQRS With MongoDB

BONUS - Modularize Your Monolith: A Quick Guide (1h 31m)

  • Introduction, Modular Monoliths
  • Defining Module Boundaries
  • Introducing Sample Application
  • Module Code Organization
  • Module Communication
  • Module Data Isolation
  • Enforcing Module Boundaries
START WATCHING
Course student
Course student
Course student
Course student
Course student
Course student
4.9/5 from 1,800+ students
Milan Jovanović

WHO'S BEHIND THIS

Hi – I'm Milan Jovanović. I help software engineers improve their .NET and software architecture skills.

I'm a Software Architect and Microsoft MVP for Developer Technologies with years of experience building large-scale systems.


I've helped thousands of people become better software engineers through my practical tips on social media, The .NET Weekly newsletter, and YouTube channel.


My goal is to teach you everything I learned while building and maintaining production-ready applications using Modular Monolith Architecture.

Microsoft MVP Badge.

Frequently Asked Questions

  • Who is this course for?

    This course is for anyone who wants to learn how to build Modular Monoliths in the real world. We'll start from the fundamentals and work our way up to building a production-ready application. We'll also explore distributed systems and microservices.

    That being said, this is not a course for beginners. Expect that you'll have to spend at least 12+ hours watching the video lessons.

  • What will I learn in this course?

    You'll learn the best practices for developing enterprise systems using Modular Monolith architecture. This architectural style gives you the best of both monoliths and microservices.

    This course covers all the fundamentals of designing a modular monolith system, but also explores many advanced topics like distributed messaging and microservices.

    I recommend checking out the Curriculum to see all the lessons and what's covered.

  • How long is this course?

    The main course is 12 hours long. There are also two bonus courses, that introduce an additional 2 hours of content.

  • What does Community access mean?

    If you purchase the MMA + Community Access plan, you will gain access to the Community section and a bonus course called Modularize Your Monolith: A Quick Guide. If you don't want to go through the course alone, it's a great way to enhance your learning experience. The Community is where like-minded engineers like yourself can get together and collaborate. If you get stuck at any point, this is where you will find help. Of course, I'll also be there to answer any questions.

  • Do I get lifetime access?

    Absolutely, YES! You can access the course forever, including any future updates, with no extra payment.

  • Ok. What should I do next if I want to enroll?

    Click the START WATCHING button below and get started today.

START WATCHING