HOME > Development > .NET Backend Bootcamp- Modulith, VSA, DDD, CQRS and Outbox

.NET Backend Bootcamp- Modulith, VSA, DDD, CQRS and Outbox

  • Development
  • Jan 21, 2025
Synopsis.NET Backend Bootcamp: Modulith, VSA, DDD, CQRS and Outbox, a...
.NET Backend Bootcamp- Modulith, VSA, DDD, CQRS and Outbox  No.1

.NET Backend Bootcamp: Modulith, VSA, DDD, CQRS and Outbox, available at $54.99, has an average rating of 4.78, with 329 lectures, based on 9 reviews, and has 391 subscribers.

You will learn about 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 This course is ideal for individuals who are Beginner to Senior .NET Developers who is curious about .NET Backend technologies with Modular Monolith Architectures It is particularly useful for Beginner to Senior .NET Developers who is curious about .NET Backend technologies with Modular Monolith Architectures.

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

Summary

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

Price: $54.99

Average Rating: 4.78

Number of Lectures: 329

Number of Published Lectures: 329

Number of Curriculum Items: 329

Number of Published Curriculum Objects: 329

Original Price: $49.99

Quality Status: approved

Status: Live

What You Will 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
  • Who Should Attend

  • Beginner to Senior .NET Developers who is curious about .NET Backend technologies with Modular Monolith Architectures
  • Target Audiences

  • Beginner to Senior .NET Developers who is curious about .NET Backend technologies with Modular Monolith Architectures
  • In this bootcamp, you’ll learn how to build robust, scalable, and maintainable applicationsusing 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 deeperinto 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 secureour APIswith Keycloak, using OpenID Connect and Bearer Tokens.

  • We’ll implement the Outbox Patternfor reliable messagingbetween 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 Monolithswith Vertical-Slice Architecture, Domain-Driven Design (DDD), CQRS, and advanced architectural patterns for Backend Development.

    Course Curriculum

    Chapter 1: Introduction

    Lecture 1: Introduction

    Lecture 2: Prerequisites, Source Code and Course Slides

    Lecture 3: Run the Final Application

    Lecture 4: Project Code Structure

    Lecture 5: Modular Monoliths Architectures, Patterns, Libraries and Best Practices

    Lecture 6: How to Follow the Course (The Course Flow and Way of Learning)

    Chapter 2: Monolithic Architecture – Whats wrong with Traditional Monoliths ?

    Lecture 1: What is Traditional Monoliths (Monolithic Architecture) ?

    Lecture 2: When to use Monolithic Architecture

    Lecture 3: Whats wrong with Traditional Monolithic Architecture ?

    Lecture 4: Technology Lock-In and Fear Cycle in Traditional Monolithic Architecture

    Lecture 5: Big Ball of Mud

    Chapter 3: Microservices Architectures – Why it is not fit projects ?

    Lecture 1: What are Microservices and Microservices Architecture ?

    Lecture 2: When to Use Microservices Architecture

    Lecture 3: Whats wrong with Microservices Architecture ?

    Lecture 4: Fallacies of Distributed Computing

    Lecture 5: Microservices Antipattern: The Distributed Monolith

    Lecture 6: Amazon Case: Rearchitecting from a Distributed Microservices to a Monolith

    Chapter 4: The Bridge: Modular Monolith Architectures – Gateway between Monolithic and MS

    Lecture 1: What is Modular Monolithic (Modulith) Architecture ?

    Lecture 2: Why Modular Monoliths ? Advantages over Microservices ?

    Lecture 3: Monolith First Approaches from Martin Fowler and Sam Newman

    Lecture 4: Starting Point for Microservices: Gradually Transition with Incremental Refactor

    Lecture 5: Compare of Monolith, Microservices, Modular Monolith: Communications and Data

    Lecture 6: Compare of Monolith, Microservices, Modular Monolith: Development and Deployment

    Lecture 7: Shopify Modular Monolithic Architecture

    Lecture 8: Decomposition of EShop Modules: Catalog, Basket, Identity and Ordering Modules

    Chapter 5: Create EShop Modular Monolith Project Solution Structure

    Lecture 1: Introduction – Create EShop Modular Monolith Project Solution Structure

    Lecture 2: Create GitHub Repository for EShop Modular Monolithic Architecture

    Lecture 3: Create New Blank Solution: eshop-modular-monoliths

    Lecture 4: Modular Monolith Folder Structure: Bootstrapper, Modules, Shared

    Lecture 5: Create Bootstrapper Api Project

    Lecture 6: Configure Empty Web Project to Bootstrapper Api of Modular Monolith

    Lecture 7: Create Modules Folders according to DDD Bounded Context Analysis

    Lecture 8: External vs Internal Architecture of Modular Monoliths Architecture

    Lecture 9: Vertical Slice Architecture

    Lecture 10: Clean Architecture

    Lecture 11: Vertical Slice versus Clean Architecture

    Lecture 12: Create Module Projects as a Class Library

    Lecture 13: Shared Kernel Pattern in DDD

    Lecture 14: Created Shared Kernel Class Library Project for All Modules

    Lecture 15: Shared Project Dependencies to Modules Projects

    Lecture 16: Module Dependencies to Bootstrapper Asp.Net Api Project

    Chapter 6: Wire-up Dependencies Between Modules (DI Management of Modules)

    Lecture 1: Introduction – Wire-up Dependencies Between Modules (DI Management of Modules)

    Lecture 2: Asp.net Dependency Injection Management and Program.cs

    Lecture 3: Wiring up dependencies between modules

    Lecture 4: Develop AddCatalogModule extention method in CatalogModule.cs

    Lecture 5: Registering Catalog Dependencies into Program.cs

    Lecture 6: Develop AddBasketModule, AddOrderingModule extention methods

    Lecture 7: Registering Basket and Ordering Dependencies into Program.cs

    Lecture 8: Asp.net Middlewares and Http Request Pipeline

    Lecture 9: Configure Http Request Pipelines for Modules in Program.cs

    Lecture 10: Examine WebApplication Class Use Abstractions and Install Required Packages

    Lecture 11: Develop UseCatalogModule extention method for Module Configure the HTTP request

    Lecture 12: Integrating UseCatalogModule in Program.cs

    Lecture 13: Develop UseBasketModule and UseOrderingModule extention method for Module Config

    Lecture 14: Integrating UseBasketModule and UseOrderingModule extention method in Program.cs

    Lecture 15: Add GlobalUsings.cs for Each Project to Avoid Redundant Using Statements

    Chapter 7: First Module: Catalog Module with Vertical Slice Architecture and CQRS

    Lecture 1: Introduction – First Module: Catalog Module with Vertical Slice Architecture

    Lecture 2: Domain Analysis of Catalog Module: Models, UCs, Rest Apis, Databases

    Lecture 3: Technical Analysis of Catalog Module: Architectures, Patterns, Libraries, Folder

    Lecture 4: Way of Development: Shared -> Modules -> API

    Chapter 8: Develop Shared Domain for Tactical DDD Abstraction (Entity, Aggreagate, Events)

    Lecture 1: Introduction – Develop Shared Domain for Tactical DDD Abstraction

    Lecture 2: Domain Driven Design – DDD

    Lecture 3: Tactical Domain-Driven Design: Entities, Value Objects, Aggregates, A. Rooots

    Lecture 4: Develop DDD Abstractions (Entity, Aggregate, DomainEvent) in Shared Library

    Lecture 5: Develop IDomainEvent interface in Tactical DDD Abstraction using MediatR

    Lecture 6: Develop Aggregate classes in Tactical DDD Abstraction

    Chapter 9: Develop Catalog Domain with Product Domain Entity Models

    Lecture 1: Introduction – Develop Catalog Domain with Product Domain Entity Models

    Lecture 2: Develop Product Domain Entity Models in Catalog Module Domain Models

    Lecture 3: Anemic-domain vs Rich-domain Model Entities Entities in DDD

    Lecture 4: Develop DDD Rich-domain model Entity for Product Entity

    Lecture 5: Domain Events in DDD and Domain vs Integration Events

    Lecture 6: Develop Product Created and Updated Domain Event in Catalog Module

    Lecture 7: Raise ProductCreated and ProductPriceChanged Domain Event in Catalog Module

    Chapter 10: Data Management of Modular Monolith: Setup Postgres as a Main Database

    Lecture 1: Introduction – Data Management of Modular Monolith: Setup Postgres DB

    Lecture 2: Data Management of Modular Monoliths: 4 Data Isolation Strategies

    Lecture 3: Best Practice: DB Schema separation of Modules in Modular Monoliths apps

    Lecture 4: Multi-context EF DB Context object for DB Separate Schema for Data Isolation

    Lecture 5: Backing Services for Cloud-Native Architectures

    Lecture 6: EShop Modular Monolith Deployment Strategy

    Lecture 7: Setup PostgreSQL DB using Docker-compose file for Multi-container Docker env

    Lecture 8: Add PostgreSQL DB image into Docker-compose file for Multi-container Docker env

    Lecture 9: Run Docker-Compose on Visual Studio to setup PostgreSQL DB on Docker

    Lecture 10: Connect and Browse PostgreSQL DB using pgAdmin

    Chapter 11: Develop Shared and Catalog Data-Infrastructure with EF Core Code First

    Lecture 1: Introduction – Develop Shared and Catalog Data-Infrastructure Layer with EF Core

    Lecture 2: EF Core 8 Features, Code First Approach, Migrations and PostgreSQL Connection

    Lecture 3: Steps of EF Core Developments for Shared and Catalog Data-Infrastructure

    Lecture 4: Install EF Core Nuget Packages in Shared Library

    Lecture 5: Develop EF Core DBContext Object for Storing Entities in Catalog Module

    Lecture 6: Mapping DDD Objects to EF Entities – Develop EF Core Entity Configurations

    Instructors

  • .NET Backend Bootcamp- Modulith, VSA, DDD, CQRS and Outbox  No.2
    Mehmet Ozkaya
    Software Architect | Microservices | .NET | AWS | Azure
  • Rating Distribution

  • 1 stars: 0 votes
  • 2 stars: 0 votes
  • 3 stars: 0 votes
  • 4 stars: 3 votes
  • 5 stars: 6 votes
  • Frequently Asked Questions

    How long do I have access to the course materials?

    You can view and review the lecture materials indefinitely, like an on-demand channel.

    Can I take my courses with me wherever I go?

    Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don’t have an internet connection, some instructors also let their students download course lectures. That’s up to the instructor though, so make sure you get on their good side!