Autoplay
Autocomplete
Previous Lesson
Complete and Continue
From ground zero — Microservices ready architecture
Course Introduction
Welcome (0:25)
What you will learn in this course (2:57)
System overview (2:40)
Who is this course for and prerequisites (1:21)
Approaches Benefits & Drawbacks
Introduction (0:46)
Traditional Monoliths (2:53)
Microservices (2:34)
Modular Monoliths (5:49)
Conclusion (0:31)
Key concepts
Non functional requirements (5:18)
Dealing with the Model code gap (3:53)
API First approach (3:58)
Structure of a module (3:57)
Defining module boundaries for our system (2:51)
Coarse grained vs Fine grained services (4:53)
Dealing with the coupling (8:57)
Data ownership (4:57)
Development process (3:21)
Module communication
Synchronous & Asynchronous communication (7:08)
Orchestration & Choreography (3:57)
Handling failures (2:35)
Result pattern (3:12)
Resiliency patterns (6:51)
Decomposition
Why would you split a module? (9:48)
How do you split a module? (10:59)
Testing practices
Importance of feedback loop (5:27)
Unit tests (3:14)
Integration tests (3:45)
Performance tests (9:12)
Architecture tests (2:49)
Other types of tests (2:52)
Cross-cutting concerns
Setting things up (3:49)
Routing Infrastructure (2:20)
Adding API documentation & Versioning (3:49)
Healthcheks & Watchdog (5:17)
Logging data to ElasticSearch (3:32)
Running background jobs with Hangfire (4:14)
Setting up Masstransit with RabbitMq (8:56)
External configuration with Git repository (4:47)
Secret management with Vault (4:55)
Simple distributed cache with Redis (5:31)
Adding auth with KeyCloack (8:38)
Using Yarp as reverse proxy (5:30)
Setting up the Host project (1:33)
Modules overview
Habits (6:35)
Ratings (4:50)
Identity management (3:40)
Course conclusion
Conclusion (0:22)
Teach online with
Adding API documentation & Versioning
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock