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
Requirements
Basics of C# and programming
Description
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 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
[Only registered and activated users can see links. ] [Only registered and activated users can see links. ] [Only registered and activated users can see links. ] [Only registered and activated users can see links. ] [Only registered and activated users can see links. ] [Only registered and activated users can see links. ]
[Only registered and activated users can see links. ] [Only registered and activated users can see links. ] [Only registered and activated users can see links. ] [Only registered and activated users can see links. ] [Only registered and activated users can see links. ] [Only registered and activated users can see links. ]