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