Softwarez.Info - Software's World!
.Net Backend Bootcamp: Modulith, Vsa, Ddd, Cqrs And Outbox - Printable Version

+- Softwarez.Info - Software's World! (https://softwarez.info)
+-- Forum: Library Zone (https://softwarez.info/Forum-Library-Zone)
+--- Forum: Video Tutorials (https://softwarez.info/Forum-Video-Tutorials)
+--- Thread: .Net Backend Bootcamp: Modulith, Vsa, Ddd, Cqrs And Outbox (/Thread-Net-Backend-Bootcamp-Modulith-Vsa-Ddd-Cqrs-And-Outbox--532340)



.Net Backend Bootcamp: Modulith, Vsa, Ddd, Cqrs And Outbox - AD-TEAM - 09-03-2024

[Image: d4a253b2204351bbb34db8e9d61c0b9e.jpg]
.Net Backend Bootcamp: Modulith, Vsa, Ddd, Cqrs And Outbox
Published 8/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 10.33 GB | Duration: 20h 12m

Develop EShop Modulith on .NET used Asp.Net Web API, PostgreSQL, Redis, RabbitMQ, Keycloak, Seq, Docker, MassTransit

[b]What you'll learn[/b]

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

[b]Requirements[/b]

Basics of C# and programming

[b]Description[/b]

In this bootcamp, you'll learn how to build robust, scalable, and maintainable applications using cutting-edge technologies and architectural patterns.We will develop;Modular Monoliths (Modulith) ArchitectureVertical Slice Architecture (VSA)Domain-Driven Design (DDD)Command Query Responsibility Segregation (CQRS)Outbox Pattern for Reliable MessagingWe 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# 12Develop 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 eventUse Entity Framework Core Code-First Approach and Migrations on PostgreSQL DatabaseUse Carter for expose Minimal Api endpointsCross-cutting Concerns including Logging with Serilog, Validation with MediatR Pipeline Behaviors, Exceptions, PaginationBasket module which includes;Similar to Catalog Module; Develop DDD, CQRS, Vertical Slice Architecture implementationAdditionally;Using Redis as a Distributed Cache over PostgreSQL database Develop and Implements Proxy, Decorator and Cache-aside patternsPublish BasketCheckoutEvent to RabbitMQ via MassTransit libraryImplement Outbox Pattern For Reliable Messaging w/ BasketCheckout Use CaseModule 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 ModulesIdentity Module which includes; Develop User Identity Module with Keycloak AuthenticationOAuth2 + OpenID Connect Flows with KeycloakSetup Keycloak into Docker-compose file for Identity Provider as a Backing ServiceSecure EShop Modules with Keycloak OpenId Connect in AspNetJwtBearer token for OpenID Connect with Keycloak Identity Ordering Module which includes;Similar to the Catalog and Basket Module; Develop DDD, CQRS, Vertical Slice Architecture implementationImplement Outbox Pattern For Reliable Messaging w/ BasketCheckout Use CaseLastly, we will discussMigrating to Microservices: EShop Modules to Microservices w/ Stranger Fig PatternThis 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.

Overview

Section 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)

Section 2: Monolithic Architecture - What's wrong with Traditional Monoliths ?

Lecture 7 What is Traditional Monoliths (Monolithic Architecture) ?

Lecture 8 When to use Monolithic Architecture

Lecture 9 What's wrong with Traditional Monolithic Architecture ?

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

Lecture 11 Big Ball of Mud

Section 3: Microservices Architectures - Why it is not fit projects ?

Lecture 12 What are Microservices and Microservices Architecture ?

Lecture 13 When to Use Microservices Architecture

Lecture 14 What's wrong with Microservices Architecture ?

Lecture 15 Fallacies of Distributed Computing

Lecture 16 Microservices Antipattern: The Distributed Monolith

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

Section 4: The Bridge: Modular Monolith Architectures - Gateway between Monolithic and MS

Lecture 18 What is Modular Monolithic (Modulith) Architecture ?

Lecture 19 Why Modular Monoliths ? Advantages over Microservices ?

Lecture 20 Monolith First Approaches from Martin Fowler and Sam Newman

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

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

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

Lecture 24 Shopify Modular Monolithic Architecture

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

Section 5: Create EShop Modular Monolith Project Solution Structure

Lecture 26 Introduction - Create EShop Modular Monolith Project Solution Structure

Lecture 27 Create GitHub Repository for EShop Modular Monolithic Architecture

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

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

Lecture 30 Create Bootstrapper Api Project

Lecture 31 Configure Empty Web Project to Bootstrapper Api of Modular Monolith

Lecture 32 Create Modules Folders according to DDD Bounded Context Analysis

Lecture 33 External vs Internal Architecture of Modular Monoliths Architecture

Lecture 34 Vertical Slice Architecture

Lecture 35 Clean Architecture

Lecture 36 Vertical Slice versus Clean Architecture

Lecture 37 Create Module Projects as a Class Library

Lecture 38 Shared Kernel Pattern in DDD

Lecture 39 Created Shared Kernel Class Library Project for All Modules

Lecture 40 Shared Project Dependencies to Modules Projects

Lecture 41 Module Dependencies to Bootstrapper Asp.Net Api Project

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

Lecture 42 Introduction - Wire-up Dependencies Between Modules (DI Management of Modules)

Lecture 43 Asp.net Dependency Injection Management and Program.cs

Lecture 44 Wiring up dependencies between modules

Lecture 45 Develop AddCatalogModule extention method in CatalogModule.cs

Lecture 46 Registering Catalog Dependencies into Program.cs

Lecture 47 Develop AddBasketModule, AddOrderingModule extention methods

Lecture 48 Registering Basket and Ordering Dependencies into Program.cs

Lecture 49 Asp.net Middlewares and Http Request Pipeline

Lecture 50 Configure Http Request Pipelines for Modules in Program.cs

Lecture 51 Examine WebApplication Class Use Abstractions and Install Required Packages

Lecture 52 Develop UseCatalogModule extention method for Module Configure the HTTP request

Lecture 53 Integrating UseCatalogModule in Program.cs

Lecture 54 Develop UseBasketModule and UseOrderingModule extention method for Module Config

Lecture 55 Integrating UseBasketModule and UseOrderingModule extention method in Program.cs

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

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

Lecture 57 Introduction - First Module: Catalog Module with Vertical Slice Architecture

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

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

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

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

Lecture 61 Introduction - Develop Shared Domain for Tactical DDD Abstraction

Lecture 62 Domain Driven Design - DDD

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

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

Lecture 65 Develop IDomainEvent interface in Tactical DDD Abstraction using MediatR

Lecture 66 Develop Aggregate classes in Tactical DDD Abstraction

Section 9: Develop Catalog Domain with Product Domain Entity Models

Lecture 67 Introduction - Develop Catalog Domain with Product Domain Entity Models

Lecture 68 Develop Product Domain Entity Models in Catalog Module Domain Models

Lecture 69 Anemic-domain vs Rich-domain Model Entities Entities in DDD

Lecture 70 Develop DDD Rich-domain model Entity for Product Entity

Lecture 71 Domain Events in DDD and Domain vs Integration Events

Lecture 72 Develop Product Created and Updated Domain Event in Catalog Module

Lecture 73 Raise ProductCreated and ProductPriceChanged Domain Event in Catalog Module

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

Lecture 74 Introduction - Data Management of Modular Monolith: Setup Postgres DB

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

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

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

Lecture 78 Backing Services for Cloud-Native Architectures

Lecture 79 EShop Modular Monolith Deployment Strategy

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

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

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

Lecture 83 Connect and Browse PostgreSQL DB using pgAdmin

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

Lecture 84 Introduction - Develop Shared and Catalog Data-Infrastructure Layer with EF Core

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

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

Lecture 87 Install EF Core Nuget Packages in Shared Library

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

Lecture 89 Mapping DDD Objects to EF Entities - Develop EF Core Entity Configurations

Lecture 90 EF Core PostgreSQL Connection String in appsettings.json file

Lecture 91 Register EF Core DbContext in Asp.Net DependencyInjection Tool for PostgreSQL

Lecture 92 Create EF Core Migrations for CatalogDbContext - Part 1

Lecture 93 Create EF Core Migrations for CatalogDbContext - Part 2

Lecture 94 Review and Run Docker-Compose on Visual Studio to setup PostgreSQL DB on Docker

Lecture 95 Apply EF Core Migrations to PostgreSQL DB with Update-Database Command

Lecture 96 Auto Migrate EF Core Entities to PostgreSQL DB when Application Startup

Lecture 97 Develop Generic UseMigration extention method for DB Migration and Seed

Lecture 98 Using UseMigration extention method on Module DependencyInjection classes

Lecture 99 Test Auto-Migrations with UseMigration extention method on WebApplication

Lecture 100 Seed EShopDb Product Data When Application Startup Just After UseMigration

Lecture 101 Run Catalog Module to Migrate and Seed EShopDb with UseMigration method

Lecture 102 EF Core Interceptors: SaveChangesInterceptor for Auditing Entities

Lecture 103 Develop SaveChangesInterceptor to Auditing Entities for Order Entities

Lecture 104 Run&Test Catalog Module for Audit with EF Save Changes Interceptor

Lecture 105 Dispatch Domain Events w/ EF Core SaveChangesInterceptor

Lecture 106 Develop DispatchDomainEventsInterceptor to Trigger Domain Event Handlers

Lecture 107 Run&Test Catalog Module for Dispatch DomainEvents w/ EF SaveChanges Interceptor

Section 12: Application Use Case Development with CQRS and MediatR

Lecture 108 Introduction - Application Use Case development with CQRS and MediatR

Lecture 109 CQRS (Command Query Responsibility Segregation) Pattern

Lecture 110 Logical and Physical Implementation of CQRS Pattern

Lecture 111 CQRS Design Pattern With MediatR Library (Logical CQRS Implementation)

Lecture 112 Develop Feature Handler class with CQRS and MediatR

Lecture 113 Create Abstraction on MediatR for CQRS - Command and Query Separation

Lecture 114 Create Abstraction on MediatR for CQRS - Command and Query Separation - 2

Section 13: Catalog Application Use Case Development with CQRS and MediatR

Lecture 115 Introduction - Catalog Application Use Case Development with CQRS and MediatR

Lecture 116 Quick Remember Catalog Module Application Use Cases Analysis

Lecture 117 Develop Catalog Module Folder Structure for CQRS

Lecture 118 Develop Dto Classes for Product in Catalog Module

Lecture 119 Develop Products CreateProductCommand and Handler in Catalog Modules Application

Lecture 120 Develop Products CreateProductCommandHandler using CatalogDbContext in Catalog

Lecture 121 Develop Products UpdateProductCommand and Handler using CatalogDbContext

Lecture 122 Develop Products DeleteProductCommand and Handler using CatalogDbContext

Lecture 123 Develop Product Queries with CQRS and MediatR in Catalog Module

Lecture 124 Mapping with Mapster

Lecture 125 Develop Product Queries with CQRS and MediatR in Catalog Module w/ Mapster

Lecture 126 Develop GetProductByCategory Queries with CQRS and MediatR in Catalog Module

Lecture 127 Develop GetProductById Queries with CQRS and MediatR in Catalog Module

Lecture 128 Develop Domain Event Handlers with MediatR INotificationHandler in Catalog

Lecture 129 Develop Domain Event Handlers with MediatR INotificationHandler - Part 2

Section 14: Develop Catalog API Endpoints Expose Minimal Api Endpoints with Carter and REPR

Lecture 130 Introduction - Develop Catalog API Endpoints Exposing Minimal Api Endpoints

Lecture 131 REPR Design Pattern and CQRS MediatR Request LifeCycle

Lecture 132 Minimal Apis and Install Carter Library to Expose Minimal Apis

Lecture 133 Quick Remember Catalog Module Endpoints Analysis

Lecture 134 Develop CreateProduct POST Endpoint with Carter implements ICarterModule

Lecture 135 Develop CreateProduct POST Endpoint with Carter implements ICarterModule- Part 2

Lecture 136 Developing UpdateProduct Endpoint for REST APIs in Catalog Module

Lecture 137 Developing DeleteProduct Endpoint for REST APIs in Catalog Module

Lecture 138 Developing GetProducts Endpoint for REST APIs in Catalog Module

Lecture 139 Developing GetProductById Endpoint for REST APIs in Catalog Module

Lecture 140 Developing GetProductByCategory Endpoint for REST APIs in Catalog Module

Lecture 141 Register Carter libraries into Asp.Net Dependency Injection Service and Request

Lecture 142 Create Extention Method for Carter Assembly Registrations

Lecture 143 Create Postman Collection for EShopModules

Lecture 144 Test Catalog Module - CreateProduct POST Request - Debug Carter Minimal API

Lecture 145 Test UpdateProduct Endpoint with CQRS and VSA in Catalog Module

Lecture 146 Test Get Product Endpoints with CQRS and VSA in Catalog Module

Lecture 147 Test DeleteProduct Endpoint with CQRS and VSA in Catalog Module

Section 15: Develop Cross-cutting Concerns for Catalog and Each Module in EShop Modules

Lecture 148 Introduction - Develop Cross-cutting Concerns for Catalog and Each Module

Lecture 149 MediatR Pipeline Behaviours and Fluent Validation Library

Lecture 150 Add Cross-cutting Concerns into Shared Class Library to use in all modules

Lecture 151 Apply Validation with AbstractValidator using Fluent Validation Library

Lecture 152 Apply Validation with AbstractValidator using Fluent Validation Library - Part 2

Lecture 153 Validation Pipeline Behaviour with MediatR using Fluent Validation Library

Lecture 154 Remove Manual Validator and Test Validation Pipeline Behaviour with MediatR usin

Lecture 155 Develop CRUD Command Validators with Fluent Validation

Lecture 156 Global Handling Exceptions in ASP.NET Core with app.UseExceptionHandler

Lecture 157 Shared Handle Exceptions Generic Way in ASP.NET Core w/ app.UseExceptionHandler

Lecture 158 Global Exception Handling with IExceptionHandler interface in Asp.Net Core

Lecture 159 Register Custom Exception Handling into Asp.net with AddExceptionHandler method

Lecture 160 Logging Behavior in MediatR Pipeline for Cross-cutting concerns

Lecture 161 Test Logging Behaviour for all MediatR Requests on Catalog Module

Lecture 162 Structured Logging Using Serilog in .NET 8.0 Minimal APIs

Lecture 163 Serilog WriteTo Seq for Structured Logging in .NET

Lecture 164 Develop Pagination Class for Query GetProducts using CQRS and MediatR

Lecture 165 Develop GetProducts Query apply Pagination using CQRS and MediatR

Section 16: Develop Basket Module with Vertical Slice Architecture and CQRS

Lecture 166 Introduction - Develop Basket Module with Vertical Slice Architecture and CQRS

Lecture 167 Domain Analysis of Basket Module: Models, UCs, Rest Apis, Databases

Lecture 168 Technical Analysis of Basket Module: Architectures, Patterns, Libraries, Folders

Lecture 169 Develop ShoppingCart Domain Entity Models in Basket Domain Entities

Lecture 170 Develop DDD Rich-domain model Entity for ShoppingCart Entities

Section 17: Develop Basket Data-Infrastructure with EF Core Code First and PostgreSQL

Lecture 171 Introduction - Develop Basket Data-Infrastructure with EF Core Code First

Lecture 172 Steps of Infrastructure EF Core Developments for Basket Module

Lecture 173 Develop EF Core DBContext Object for Storing Entities in Basket Infrastructure

Lecture 174 Mapping DDD Objects to EF Entities - Develop EF Core Entity Configurations

Lecture 175 EF Core 8 Relations and DDD ValueObject Mapping with ComplexType and Property

Lecture 176 Develop SC and SC Items Relations Entity Configurations

Lecture 177 EF Core SQL Server Connection String in appsettings.json file

Lecture 178 Register EF Core DbContext in Asp.Net Dependency Injection Tool for PostgreSQL

Lecture 179 Create EF Core Migrations for BasketDbContext in Basket Infrastructure

Lecture 180 Run Docker-Compose on Visual Studio to setup PostgreSQL on Docker

Lecture 181 Apply EF Core Migrations to PostgreSQL DB with Update-Database Command

Lecture 182 Auto Migrate EF Core Entities to PostgreSQL when Application Startup with Coding

Lecture 183 Test Auto-Migrations with UseMigration Extention Method on WebApplication

Section 18: Develop Basket Application Use Case Development with CQRS and MediatR

Lecture 184 Introduction - Basket Application Use Case Development with CQRS and MediatR

Lecture 185 Develop Basket Folder Structure for CQRS

Lecture 186 Develop Dto Classes for ShoppingCart in Basket Module

Lecture 187 Develop Basket CreateBasketCommand and Handler in Basket Application Use Cases

Lecture 188 Develop Basket CreateBasketCommandHandler using BasketDbContext in Basket Module

Lecture 189 Develop Basket DeleteBasketCommand and Handler using BasketDbContext in Basket

Lecture 190 Develop Basket Queries with CQRS and MediatR in Basket Module

Lecture 191 Develop Basket AddItemIntoBasketHandler with CQRS and MediatR

Lecture 192 Develop Basket RemoveItemFromBasketHandler with CQRS and MediatR

Section 19: Develop Basket API Endpoints Exposing Minimal Api Endpoints with Carter and REPR

Lecture 193 Introduction - Develop Basket API Endpoints Exposing Minimal Api Endpoints

Lecture 194 Develop CreateBasket POST Endpoint with Carter implements ICarterModule

Lecture 195 Develop DeleteBasket Endpoint with Carter implements ICarterModule

Lecture 196 Develop GetBasket Endpoint with Carter implements ICarterModule for Minimal Apis

Lecture 197 Develop AddItemIntoBasket Endpoint with Carter implements ICarterModule

Lecture 198 Develop RemoveItemFromBasket Endpoint with Carter implements ICarterModule

Lecture 199 Register MediatR and Carter libraries into Asp.Net Dependency Injection Service

Lecture 200 Register MediatR libraries into Asp.Net Dependency Injection Service and Request

Lecture 201 Develop MediatR Extention Method for Custom Registration With Assemblies

Lecture 202 Test Basket API - CreateBasket POST Request - Debug Carter Minimal API

Lecture 203 Test Get Basket Endpoints with CQRS and VSA in Basket Module

Lecture 204 Test DeleteBasket Endpoint with CQRS and VSA in Basket Module

Lecture 205 Test AddItemIntoBasket Endpoint with CQRS and VSA in Basket Module

Lecture 206 Test RemoveItemFromBasket Endpoint with CQRS and VSA in Basket Module

Section 20: Develop Distributed Caching with Redis in Basket Module

Lecture 207 Introduction - Develop Distributed Caching with Redis in Basket Module

Lecture 208 Develop BasketRepository Class using EF Core DbContext object

Lecture 209 Implement IBasketRepository Class using EF Core DbContext object

Lecture 210 Register IBasketRepository into DI of Basket Module

Lecture 211 Inject and Use IBasketRepository into Handler classes in Basket Module

Lecture 212 Inject and Use IBasketRepository into AddItem and RemoveItem Handler classes

Lecture 213 Quick Test Basket Endpoint with CQRS and VSA in Basket Module

Lecture 214 Cache-aside Pattern and Cache Invalidation

Lecture 215 Proxy Pattern, Decorator Pattern and Scrutor Library

Lecture 216 Develop CachedBasketRepository with Proxy Pattern, Decorator Pattern and Scrutor

Lecture 217 Develop CachedBasketRepository with Proxy Pattern, Decorator Pattern - Part 2

Lecture 218 Develop CachedBasketRepository with Proxy Pattern, Decorator Pattern - Part 3

Lecture 219 Register Decorated CachedBasketRepository and StackExchangeRedis with Scrutor

Lecture 220 Register StackExchangeRedis into Common DI in Api Project Program.cs

Lecture 221 Setup Redis as a Distributed Cache using Docker-compose file for Multi-container

Lecture 222 Run Docker-Compose on Visual Studio to setup Redis Distributed Cache on Docker

Lecture 223 Connect Redis Cache from Local Basket Module and send GET request Basket Cache

Lecture 224 Develop Custom JsonConverter for ShoppingCart and Items When Reading to Redis

Lecture 225 Develop Custom JsonConverter for ShoppingCart and Items - Part 2

Lecture 226 Use Custom JsonSerializerOptions with JsonConverter for ShoppingCart and Items

Lecture 227 Quick Test Basket Endpoint with CachedBasket Repository and Custom JsonConverter

Section 21: Sync Communications between Modules with In-process Method Calls (Public APIs)

Lecture 228 Introduction - Sync Communications between Modules with In-process Method Calls

Lecture 229 How Modular Monolithic Architecture Handle Communications Between Modules

Lecture 230 Basket Module Synchronous Use Cases - Adding an Item to the Basket Communication

Lecture 231 Examine AddItemIntoBasketHandler Class: Get Product Price from Catalog Module

Lecture 232 Sync Communication Between Modules Using Contracts Class Libraries

Lecture 233 Step 1: Create Catalog.Contracts Class Library

Lecture 234 Step 2: Move exposing MediatR method Query or Commands into Catalog.Contracts

Lecture 235 Spliting CQRS Contract related common operations into Shared.Contracts Class lib

Lecture 236 Step 3: Modify Catalog Module getting reference from Catalog.Contracts Class Lib

Lecture 237 Step 4: Basket Get Reference from Catalog.Contracts Class Library

Lecture 238 Step 6: Get Product entity values into AddItemIntoBasketHandler and set Price

Lecture 239 Test Basket AddItemIntoBasket Sync Call to Catalog Module to Get Product Data

Lecture 240 Step 7: Migrating Microservices: Evolving Contracts Sync Communication

Section 22: Async Communications between Modules w/ RabbitMQ & MassTransit for UpdatePrice

Lecture 241 Introduction - Async Communications between Modules w/ RabbitMQ & MassTransit

Lecture 242 How Modular Monolithic Architecture Handle Async Communications Between Modules

Lecture 243 Fan-Out Publish/Subscribe Messaging Pattern

Lecture 244 Quick Remember: Domain vs Integration Events - Domain leads to Integration Event

Lecture 245 Domain Analysis of Async Communication between Catalog and Basket Modules

Lecture 246 Technical Analysis of Async Communication between Catalog and Basket Modules

Lecture 247 Steps of Developing Async Communication between Catalog and Basket Modules

Lecture 248 Step1: Examine Catalog Module Domain and Integration Events

Lecture 249 Step2: Create Shared.Messaging Class Library

Lecture 250 Develop ProductPriceChangedIntegration Event in Shared.Messaging Class Library

Lecture 251 Develop MassTransit Extention Methods to Register RabbitMQ connection into DI

Lecture 252 Develop MassTransit Extention Methods to Register connection into DI of Catalog

Lecture 253 Add Project Reference to Shared.Messaging in Catalog and Basket Modules

Lecture 254 Register MassTransit Packages into Bootstrapper Api DI in Program.cs file

Lecture 255 ProductPriceChanged Integration Event: How Domain leads to Integration Event

Lecture 256 Step3: Catalog Publish UpdatePrice Integration Event

Lecture 257 Step4: Basket Subscribe and consume ProductPriceChanged Integration Event

Lecture 258 Develop UpdateItemPriceInBasket Feature in Basket Module

Lecture 259 Develop UpdateItemPriceInBasket Feature in Basket Module - Part 2

Lecture 260 Call UpdateItemPriceInBasketCommand in ProductPriceChangedIntegrationEventHander

Lecture 261 TEST - ProductPriceChangedIntegrationEvent w/ In-memory MassTransit

Lecture 262 What is RabbitMQ and Main Components of RabbitMQ (Producer, Queue, Consumer)

Lecture 263 Shifting In-memory Bus to RabbitMQ Message broker in Masstransit

Lecture 264 Develop MassTransit Extention Methods to Register RabbitMQ connection into DI

Lecture 265 Setup RabbitMQ for Async Communication using Docker-compose file

Lecture 266 Run Docker-Compose on Visual Studio to setup RabbitMQ on Docker

Lecture 267 TEST - ProductPriceChangedIntegrationEvent w/ RabbitMQ MassTransit

Beginner .NET Developers who is curious about .NET Backend technologies with Modular Monolith Architectures

[Image: YScdZUFh_o.jpg]

[To see links please register or login]


[To see links please register or login]