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
-
ClassicSystem Design Course
By: get.interviewready.ioIn this course, you’ll get a deep understanding of system design concepts. Full guide. Architectural schemes, capacity planning, API list, tests, Faq.92h 26m4/5 -
Updated 8mo agoFundamentals of Networking Engineering
By: UdemyWe are entering an era in software engineering where we rely on libraries and frameworks to do most of our work. While this is useful and save tremendous dev ho18h 6m5/5 -
Updated 1y agoAdvanced Software Design Course by Mirdin
By: Mirdin, Nils Eriksson, Jimmy Koppel (Mirdin)The Advanced Software Design Course is a program with 6 main modules aimed at improving software design skills.11h 23m