Modular Monolith Architecture

3D box mockup of the Modular Monolith Architecture digital course by Milan Jovanovic, showing a cube assembled from smaller modular blocks

The Modular Monolith Architecture Course for .NET

Modular Monolith Architecture teaches you how to build a production-ready modular monolith from scratch: module boundaries with Domain-Driven Design, event-driven architecture, and a clear migration path to microservices. 10 in-depth chapters, 12+ hours of video, full source code, lifetime access.

Student profile pictureStudent profile pictureStudent profile pictureStudent profile pictureStudent profile pictureStudent profile picture

2,800+ engineers already enrolled

Why modular monoliths, not microservices?

"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

I agree with him. Microservices give you independent deployments, but they charge for it up front: network calls that can fail, distributed transactions, eventual consistency, and an operational bill most teams underestimate. Paying that price before you understand your domain boundaries is how systems end up as distributed monoliths.

A modular monolith gives you the part that actually matters on day one: strict boundaries between modules, independent domain models, and clear communication contracts.

Comparison of three microservices communicating over the network versus the same Orders, Billing and Shipping components running as in-process modules in one deployable modular monolith
Same boundaries, one deployable: modules talk in-process instead of over the network.

Everything stays inside a single deployable application. You keep in-process performance and simple operations, and you keep the option to extract a module into a microservice later, when you have a real reason. I wrote a free introduction in Modular Monolith Architecture in .NET and compared the tradeoffs in Modular Monolith vs. Microservices.

This course turns that idea into practice. We build the whole system together, and after completing it you will:

  • Confidently use modular monoliths to build robust, scalable systems
  • Create an architecture that stands the test of time
  • Understand how to implement an event-driven system
  • Easily migrate to microservices (if you ever need to)

What's inside the course

10 chapters take you from fundamentals to extracting your first microservice. 12+ hours of video, updated to .NET 10, built with PostgreSQL, RabbitMQ, Redis, and Docker.

01

Modular Monoliths: Introduction

Fundamental · 46m

The foundations. Modular monoliths take the best of monoliths and microservices, and understanding both is where we start.

02

Defining Module Boundaries

Fundamental · 1h 47m

Apply Domain-Driven Design and Event Storming to explore domain boundaries. This is where we introduce Evently, the sample application we build throughout the course.

03

Module Cross-Cutting Concerns

Intermediate · 1h 13m

Isolate dependency injection, configuration, logging, caching, and more per module, without coupling modules to each other.

04

Module Communication

Intermediate · 1h 22m

The two ways modules can communicate, and how that decision shapes how flexible your system stays over time.

05

Authentication & Authorization

Intermediate · 1h 23m

Token-based authentication with Keycloak and role-based access control (RBAC) across modules.

06

Architecture Enforcement

Intermediate · 35m

Three techniques, including architecture testing, to make sure your team can't quietly break module boundaries.

07

Reliable Messaging: Outbox and Inbox

Advanced · 1h 10m

The Outbox and Inbox patterns, temporal decoupling, and idempotent consumers, so messages are never lost and duplicates are handled.

08

Event-Driven Architecture

Advanced · 1h

Event notifications, event-carried state transfer, materialized views with CQRS, and saga orchestration.

09

Testing Modular Monoliths

Intermediate · 1h 14m

Unit, integration, and system integration testing, plus running the whole test suite in CI/CD.

10

Microservices: Extracting Modules

Advanced · 1h 24m

Extract a module into a microservice with distributed tracing (OpenTelemetry), RabbitMQ messaging, and a YARP API gateway.

Every plan includes the "CQRS With MongoDB" bonus course, which shows how to introduce a document database to a modular monolith. The Community plan adds"Modularize Your Monolith", a step-by-step guide to modularizing an existing monolith application.

You build a real system, not a toy

The course is built around Evently, an event ticketing platform we create from scratch. By the end you have dozens of API endpoints, 50+ use cases, and 6000+ lines of code that you can keep as a reference architecture for your own projects.

Evently system architecture showing a client application calling an API gateway that routes to Events, Ticketing, Attendance and Users modules, each with its own database schema, plus identity provider, Redis cache, message broker, logging and observability tooling
The full Evently architecture you build in the course, from API gateway to per-module database schemas.

The tech stack is what you would pick for a serious production system: .NET 10,PostgreSQL, RabbitMQ, Redis, andDocker, with Serilog and Seq for logging, FluentValidation, Keycloak for identity, YARP as the API gateway, and OpenTelemetry for distributed tracing.

Nothing is hand-waved. Every architectural decision happens on camera, and you see the consequences of each one as the system grows.

Who this course is for

This course is for .NET developers who want to design systems that are maintainable, loosely coupled, and ready to evolve into microservices if needed. If you are the person on your team who gets asked "how should we structure this", this is for you.

You should have at least 1 year of experience with ASP.NET Core and, preferably, Entity Framework Core. Familiarity with Clean Architecture and Docker helps, since we use Docker to run external services like PostgreSQL and RabbitMQ.

"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. This course is worth every penny I spent on it!"

Mykola Kriukov · Senior Software Engineer

Pricing: one-time payment, lifetime access

The course costs $297 on the basic plan, which includes all 10 chapters, the full source code, the "CQRS With MongoDB" bonus course, and email support. The Community plan is $497 and adds the "Modularize Your Monolith" bonus course, priority support, and a private community where I answer questions personally. Both plans include every future update at no extra cost.

Paying with company money? You'll get a receipt you can submit for reimbursement, and I can provide a quote for multiple team seats.

Frequently asked questions

What does the Modular Monolith Architecture course cover?

You build a production-ready modular monolith from scratch: module boundaries with DDD and Event Storming, cross-cutting concerns, module communication, authentication and authorization with Keycloak, architecture enforcement, reliable messaging with Outbox and Inbox, event-driven architecture, testing, and extracting modules to microservices. All course content is updated to .NET 10.

How long is the course?

The course includes 12+ hours of video across 10 in-depth chapters (14+ hours with the Community edition's bonus material). You also get the full source code of Evently, the application we build together.

What are the prerequisites?

You should have at least 1 year of experience with ASP.NET Core and, preferably, Entity Framework Core. Familiarity with Clean Architecture and Docker helps, since we use Docker to run external services like PostgreSQL and RabbitMQ.

How much does the course cost?

The basic plan is $297 and includes all 10 chapters, the full source code, the "CQRS With MongoDB" bonus course, and email support. The Community plan is $497 and adds the "Modularize Your Monolith" bonus course, priority support, and access to a private community where I answer questions personally.

Do I get lifetime access?

Yes. You pay once and can access the course forever, including every future update, with no extra payment.

Can my company pay for the course?

Absolutely. Many students expense the course through their employer. You will receive a receipt after checkout that you can submit for reimbursement, and I can provide a quote for multiple team seats through the contact page.

Can I preview the course before buying?

Yes. Several lessons are available as free previews, so you can evaluate the teaching style and depth before you enroll.

Start building better systems today

Join 2,800+ engineers who are using Modular Monolith Architecture to build robust, scalable systems that can evolve into microservices when it actually makes sense.

Enroll in Modular Monolith Architecture