English
Topic 18. Microservice architecture: system decomposition, the API gateway, data consistency (Saga, Outbox), and observability
Goal: become familiar with the principles of microservice architecture, decomposing a system by bounded contexts, and the API gateway, Saga, Transactional Outbox, and Inbox patterns; learn to build an application of several services with their own databases in Aspire, configure a YARP API gateway with routing, JWT authentication, rate limiting, and aggregation, and implement sagas with compensating actions and idempotent RabbitMQ event consumers; master resilience strategies (timeouts, retries, circuit breakers, degradation), OpenTelemetry distributed tracing, and integration testing of microservices.
Lecture contents
- Monoliths and decomposition into services — Monoliths, modular monoliths, and microservices · Decomposing a system into services · A sample application: the Shop online store
- Service interaction and the API gateway — Service interaction · API gateways and BFF · Service discovery and configuration
- Data and the Saga pattern — Data in microservices · Distributed transactions: the Saga pattern
- Outbox, Inbox, and resilience — Transactional Outbox and Inbox · Resilience of service interaction
- Observability, versioning, and deployment — Observability · API versioning and testing · Deploying microservices · Common mistakes