Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Udemy

.NET 8 Backend Bootcamp: Modulith, VSA, DDD, CQRS and Outbox

via Udemy

Overview

Google, IBM & Meta Certificates – 40% Off
One plan covers every Professional Certificate on Coursera.
Unlock All Certificates
Develop EShop Modulith on .NET used Asp.Net Web API, PostgreSQL, Redis, RabbitMQ, Keycloak, Seq, Docker, MassTransit

What you'll learn:
  • Modular Monoliths (Modulith) Architecture
  • Vertical Slice Architecture (VSA)
  • Domain-Driven Design (DDD)
  • Command Query Responsibility Segregation (CQRS)
  • Outbox Pattern for Reliable Messaging
  • CQRS (Command Query Responsibility Segregation) and Vertical Slice architectures for module development
  • Communicate over In-process method calls-public APIs and use RabbitMQ for event-driven communication
  • Secure APIs with Keycloak, using OpenID Connect and Bearer Tokens
  • ASPNET Core Minimal APIs and latest features of .Net8 and C# 12
  • Vertical Slice Architecture implementation with Feature folders
  • DDD, CQRS Patterns using MediatR library w/ following Best Practices
  • Use Domain Events & Integration Events when UpdatePriceChanged event
  • Use Entity Framework Core Code-First Approach and Migrations on PostgreSQL Database
  • Cross-cutting Concerns including Logging with Serilog, Validation with MediatR Pipeline Behaviors, Exceptions, Pagination
  • Using Redis as a Distributed Cache over PostgreSQL database
  • Develop Proxy, Decorator and Cache-aside patterns
  • Sync Communications between Catalog and Basket Modules w/ In-process Method Calls (Public APIs)
  • Async Communications between Modules w/ RabbitMQ & MassTransit
  • Develop User Identity Module with Keycloak Authentication
  • OAuth2 + OpenID Connect Flows with Keycloak
  • Outbox Pattern For Reliable Messaging w/ BasketCheckout Use Case
  • Publish BasketCheckoutEvent to RabbitMQ via MassTransit library, Consume from Ordering Module
  • Migrating to Microservices: EShop Modules to Microservices w/ Stranger Fig Pattern

In this bootcamp, you'll learn how to build robust, scalable, and maintainable applications using cutting-edge technologies and architectural patterns.

We will develop;

  1. Modular Monoliths (Modulith) Architecture

  2. Vertical Slice Architecture (VSA)

  3. Domain-Driven Design (DDD)

  4. Command Query Responsibility Segregation (CQRS)

  5. Outbox Pattern for Reliable Messaging

We start with the basics and progressively dive deeper into each topic. You'll get hands-on experience building a complete EShop Modular Monolith application, implementing features like CQRS and the Outbox pattern.

  • We'll follow CQRS (Command Query Responsibility Segregation) and Vertical Slice architectures for module development.

  • Modules will communicate over In-process method calls-public APIs and use RabbitMQ for event-driven communication.

  • We'll secure our APIs with Keycloak, using OpenID Connect and Bearer Tokens.

  • We'll implement the Outbox Pattern for reliable messaging between modules.

Along with this you’ll develop following modules and items:

Catalog module which;

  • Using Asp.Net Core Minimal APIs and latest features of .Net8 and C# 12

  • Develop Vertical Slice Architecture implementation with Feature folders

  • Develop DDD, CQRS Patterns using MediatR library w/ following Best Practices

  • Use Domain Events & Integration Events when UpdatePriceChanged event

  • Use Entity Framework Core Code-First Approach and Migrations on PostgreSQL Database

  • Use Carter for expose Minimal Api endpoints

  • Cross-cutting Concerns including Logging with Serilog, Validation with MediatR Pipeline Behaviors, Exceptions, Pagination

Basket module which includes;

  • Similar to Catalog Module; Develop DDD, CQRS, Vertical Slice Architecture implementation

    Additionally;

  • Using Redis as a Distributed Cache over PostgreSQL database

  • Develop and Implements Proxy, Decorator and Cache-aside patterns

  • Publish BasketCheckoutEvent to RabbitMQ via MassTransit library

  • Implement Outbox Pattern For Reliable Messaging w/ BasketCheckout Use Case

Module Communications;

  • Sync Communications between Catalog and Basket Modules with In-process Method Calls (Public APIs)

  • Async Communications between Modules w/ RabbitMQ & MassTransit for UpdatePrice Between Catalog-Basket Modules

Identity Module which includes;

  • Develop User Identity Module with Keycloak Authentication

  • OAuth2 + OpenID Connect Flows with Keycloak

  • Setup Keycloak into Docker-compose file for Identity Provider as a Backing Service

  • Secure EShop Modules with Keycloak OpenId Connect in AspNet

  • JwtBearer token for OpenID Connect with Keycloak Identity

Ordering Module which includes;

  • Similar to the Catalog and Basket Module; Develop DDD, CQRS, Vertical Slice Architecture implementation

  • Implement Outbox Pattern For Reliable Messaging w/ BasketCheckout Use Case

Lastly, we will discuss

  • Migrating to Microservices: EShop Modules to Microservices w/ Stranger Fig Pattern

This course is more than just learning .NET, it's a deep dive into the world of Modular Monoliths with Vertical-Slice Architecture, Domain-Driven Design (DDD), CQRS, and advanced architectural patterns for Backend Development.

Syllabus

  • Introduction
  • Monolithic Architecture - What's wrong with Traditional Monoliths ?
  • Microservices Architectures - Why it is not fit projects ?
  • The Bridge: Modular Monolith Architectures - Gateway between Monolithic and MS
  • Create EShop Modular Monolith Project Solution Structure
  • Wire-up Dependencies Between Modules (DI Management of Modules)
  • First Module: Catalog Module with Vertical Slice Architecture and CQRS
  • Develop Shared Domain for Tactical DDD Abstraction (Entity, Aggreagate, Events)
  • Develop Catalog Domain with Product Domain Entity Models
  • Data Management of Modular Monolith: Setup Postgres as a Main Database
  • Develop Shared and Catalog Data-Infrastructure with EF Core Code First
  • Application Use Case Development with CQRS and MediatR
  • Catalog Application Use Case Development with CQRS and MediatR
  • Develop Catalog API Endpoints Expose Minimal Api Endpoints with Carter and REPR
  • Develop Cross-cutting Concerns for Catalog and Each Module in EShop Modules
  • Develop Basket Module with Vertical Slice Architecture and CQRS
  • Develop Basket Data-Infrastructure with EF Core Code First and PostgreSQL
  • Develop Basket Application Use Case Development with CQRS and MediatR
  • Develop Basket API Endpoints Exposing Minimal Api Endpoints with Carter and REPR
  • Develop Distributed Caching with Redis in Basket Module
  • Sync Communications between Modules with In-process Method Calls (Public APIs)
  • Async Communications between Modules w/ RabbitMQ & MassTransit for UpdatePrice
  • Develop User Identity Module with Keycloak Authentication
  • Ordering Module with Vertical Slice Architecture and CQRS
  • Outbox Pattern For Reliable Microservices Messaging w/ BasketCheckout Use Case
  • Containerize and Orchestrate EShop Modular App in Docker-Compose
  • Migrating to Microservices: EShop Modules to Microservices w/ Strangler Fig
  • Thanks

Taught by

Mehmet Ozkaya

Reviews

4.6 rating at Udemy based on 385 ratings

Start your review of .NET 8 Backend Bootcamp: Modulith, VSA, DDD, CQRS and Outbox

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.