This course provides a structured approach for designing and implementing large systems that are scalable and highly available.
The challenges designing and building large systems are in how they are decomposed and communicate with each other. You will learn how to define boundaries based on business capabilities and implement asynchronous messaging for communication.
This course will show architectural patterns and styles that create a system that is resilient when failures occur. And when load and traffic increases are scalable horizontally on-demand as required.
I've developed this course based on my over two decades of experience designing and developing business systems in distribution, transportation, manufacturing, and accounting.
- Course Introduction
- Prerequisites
- Setup
- Defining Boundaries
- Physical & Logical Boundaries
- 4+1 Architectural View Model
- Monolith
- Microservices
- Message-Driven
- Web-Queue-Worker
- CQS
- Commands & Queries
- Task-Based UI
- Feature Driven
- Organization
- Dependencies
- Pipes & Filters
- Message Types
- Events
- Queues & Topics
- Competing Consumers
- Outbox Pattern
- Idempotent Consumers
- Event Choreography
- Orchestration
- Compensating Actions
- Reference-Based Messaging
- Priority
- UI Composition
- Backend for Frontend
- Write-Through
- Cache-Aside
- Distributed
- Failover
- Event Carried State Transfer
- Aggregates
- Projections
- Versioning
- Snapshots
- Strangler
- Anti-corruption Layer
- Sidecar
- Physical
- Auto-scaling
- Load Leveling
- Metrics
- Logging
- Distributed Tracing
where are all the links? I am interested