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

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.5 rating at Udemy based on 363 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.