This in-depth course will transform the way you build modern systems. You will learn the best practices for applying the Modular Monolith architecture in a real-world scenario. Join 500+ other students to accelerate your growth as a software architect.
Modular Monolith Architecture
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.
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)
About the Author: Milan Jovanović
Milan Jovanović is a Serbian software engineer and Microsoft MVP focused on the architectural side of .NET development — particularly Clean Architecture, Modular Monoliths, and the patterns for building maintainable production .NET applications. He runs the Milan Jovanović Tech newsletter — one of the more widely-read newsletters in the .NET community — and publishes paid course material on the same topics.
His CourseFlix listing carries three Milan Jovanović courses: Pragmatic Clean Architecture, Modular Monolith Architecture, and Pragmatic REST APIs. The teaching style is unusually rigorous for the .NET tutorial market about architectural decisions — each course is essentially a senior engineer's playbook on a specific architectural pattern.
Material is paid and aimed at intermediate-and-up .NET developers responsible for architectural decisions on real production systems. For broader content, see CourseFlix's C# and System Design & Architecture category pages.
Watch Online 59 lessons
| # | Lesson Title | Duration | Access |
|---|---|---|---|
| 1 | Agenda, Your Instructor, Course Structure Demo | 05:58 | |
| 2 | How To Use This Course | 02:33 | |
| 3 | Introduction, Monoliths and Microservices | 15:28 | |
| 4 | Modular Monoliths | 14:57 | |
| 5 | Module Constraints | 15:52 | |
| 6 | Domain-Driven Design, Event Storming, Bounded Contexts | 15:21 | |
| 7 | Introducing Evently Sample Application | 06:11 | |
| 8 | Building the First Module | 35:37 | |
| 9 | Refactoring to Clean Architecture | 38:38 | |
| 10 | Events Module Review | 11:02 | |
| 11 | Cross-Cutting Concerns | 06:20 | |
| 12 | Dependency Injection | 14:48 | |
| 13 | Module Configuration | 05:13 | |
| 14 | Structured Logging With Serilog and Seq | 10:44 | |
| 15 | Exception Handling | 05:48 | |
| 16 | Validation With FluentValidation | 06:14 | |
| 17 | Distributed Caching With Redis | 09:31 | |
| 18 | Health Checks | 06:23 | |
| 19 | Automatically Registering Endpoints | 08:19 | |
| 20 | Module Communication Patterns | 09:07 | |
| 21 | Publishing Domain Events | 07:04 | |
| 22 | Introducing the Users Module | 07:30 | |
| 23 | Scaffolding the Ticketing Module | 04:03 | |
| 24 | Synchronous Communication | 17:50 | |
| 25 | Duplicating Data Between Modules | 10:07 | |
| 26 | Asynchronous Communication | 17:24 | |
| 27 | Eventual Consistency: Introduction | 09:26 | |
| 28 | Authentication & Authorization | 03:34 | |
| 29 | Keycloak Identity Provider Setup | 18:59 | |
| 30 | Token Based Authentication | 14:40 | |
| 31 | User Registration With KeyCloak | 22:23 | |
| 32 | RBAC Authorization | 23:57 | |
| 33 | 2 Short Asks | 01:14 | |
| 34 | Architecture Enforcement | 05:51 | |
| 35 | Modular Architecture | 10:04 | |
| 36 | Architecture Testing | 19:31 | |
| 37 | Reliable Messaging | 04:15 | |
| 38 | Outbox Pattern | 31:57 | |
| 39 | Outbox: Idempotent Consumers | 21:22 | |
| 40 | Inbox Pattern | 12:57 | |
| 41 | Event-Driven Architecture | 11:50 | |
| 42 | Event Notifications | 05:30 | |
| 43 | Event-Carried State Transfer | 05:49 | |
| 44 | Materialized Views and CQRS | 11:16 | |
| 45 | Saga Pattern, Orchestration | 25:09 | |
| 46 | Testing Modular Monoliths | 07:14 | |
| 47 | Unit Testing | 14:58 | |
| 48 | Integration Testing | 30:32 | |
| 49 | System Integration Testing | 13:50 | |
| 50 | Automated Testing in CI/CD Pipelines | 07:36 | |
| 51 | Microservices Benefits, Extracting Modules | 06:28 | |
| 52 | Distributed Tracing, OpenTelemetry | 17:07 | |
| 53 | Distributed Messaging With RabbitMQ | 10:54 | |
| 54 | API Gateways, Introducing YARP | 19:03 | |
| 55 | Extracting Modules to Microservices | 30:47 | |
| 56 | A Note From Me | 00:57 | |
| 57 | Introduction, Document Databases | 09:22 | |
| 58 | Implementing CQRS With MongoDB | 31:01 | |
| 59 | A Small Ask From Me | 01:15 |
Get instant access to all 58 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.
Learn more about subscriptionRelated courses
-

Feature Flags: Transform Your Product Development Workflow
Sources: Ben NadelMy development team constantly deployed critical errors to production. We spent as much time fixing failures and writing reports on... -

System Design for Interviews and Beyond
Sources: Mikhail SmarshchokHaving over 15 years of industry experience, last 9 years I worked on building scalable, highly available and low latency distributed systems. For a long time, I have wondered…7 hours 53 minutes 5 seconds 5 / 5 -

Smart Interface Design Patterns
Sources: Vitaly Friedman, Smashing MagazineMaster essential design patterns for modern interfaces. Learn best practices through examples and live projects to tackle real-life challenges effectively.13 hours 18 minutes 5 seconds 5 / 5