Skip to main content
CF

Modular Monolith Architecture

12h 48m 50s
English
Paid

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.

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ć thumbnail

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

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 59 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Agenda, Your Instructor, Course Structure
All Course Lessons (59)
#Lesson TitleDurationAccess
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
Unlock unlimited learning

Get instant access to all 58 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Related courses

Frequently asked questions

What are the prerequisites for enrolling in this course?
Prospective students should have a foundational understanding of software architecture and programming. Familiarity with concepts such as Domain-Driven Design, dependency injection, and basic knowledge of event-driven systems will be beneficial. The course covers advanced topics like the Outbox Pattern, CQRS with MongoDB, and distributed messaging, which require prior experience in software development.
What kind of projects will I build during the course?
Students will work on the Evently Sample Application, which is used throughout the course to demonstrate the principles of Modular Monolith Architecture. Key projects include building the first module, scaffolding the Ticketing Module, and implementing authentication and authorization with Keycloak. These projects are designed to help students apply theoretical knowledge to practical scenarios.
Who is the target audience for this course?
This course is aimed at software architects and developers looking to enhance their skills in building scalable and maintainable systems using Modular Monolith Architecture. It is particularly useful for those transitioning from traditional monolithic or microservices architectures to a more modular approach.
How does this course differ from other architecture courses?
Unlike some courses that focus solely on either monolithic or microservices architectures, this course provides a balanced approach to Modular Monolith Architecture. It covers both theoretical concepts like Domain-Driven Design and practical implementation details such as structured logging with Serilog and Seq, and distributed caching with Redis. The course also addresses the transition from monoliths to microservices, making it comprehensive for modern architectural needs.
What tools and platforms are specifically covered in this course?
The course covers a variety of tools and platforms essential for implementing Modular Monolith Architecture. These include Serilog and Seq for structured logging, Redis for distributed caching, RabbitMQ for distributed messaging, and Keycloak for identity provider setup. It also introduces YARP for API gateways, providing students with a robust toolkit for building modern applications.
What topics are not covered in this course?
The course does not delve into front-end development or user interface design. It focuses primarily on back-end architecture and system design patterns. Additionally, while there is a section on extracting modules to microservices, the course does not cover microservices in extensive detail, focusing instead on the modular monolith approach.
What is the expected time commitment for completing the course?
With 59 lessons to cover, students should expect to dedicate a significant amount of time to complete the course thoroughly. Although the exact runtime is not specified, the detailed nature of the lessons, including practical exercises and tests, suggests a commitment of several weeks to fully grasp and implement the concepts taught.