CONTENT
1. Introduction to Microservices
1.1 Limitation to Monoliths
1.2 Design Principles of Microservices and Architecting Microservices
1.3 Challenges of Microservices
2. API with ASP.NET Core Practical
2.1 Clean Architecture Concept
2.2 Exception Handling Middleware
2.3 Entity Framework Core
2.4 Entity Framework Migrations
2.5 DTO with AutoMapper
2.6 Data Layer & API Controllers
2.7 FluentValidation
2.8 Testing API with Postman or SOAPUI
3. Docker
3.1 What is Container & Docker?
3.2 Dockerize your Apps
3.3 Publish app to Docker Hub
3.4 Running your Services on Docker
4. AKS (Kubernetes)
4.1 Kubernetes Architecture
4.2 Kubernetes Topics (Deployment, NodePort, ClusterIP)
5. Communicating between Microservices
5.1 RESTAPI
5.2 Open API and Swagger
6. Synchronous Communication (HttpClient)
7. Fault Tolerance
7.1 Polly (Implementing Fault-Handling Policies in Applications)
7.2 Resilient Communication Pattern
7.3 Implement Retries with Back-Off (Wait and Retry)
7.4 Circuit Breaker
7.5 Fallback
7.6 Timeout
7.7 Bulkhead Isolation
8. Cache
8.1 Introduction to Caching (Theory)
8.2 Redis
8.3 Implementing Cache Mechanism in API service
9. API Gateway/nGinx Ingress Controller
9.1 Introduction of API Gateway
9.2 nGinx or Ocelot
9.3 Rate Limits
10. PostgreSQL or SQL Server Deployment (Database per Services)
11. Persistance Volume Claim, & Kubernetes Secret
12. Asynchronous Communication
12.1 Introduction of Asynchronous Communication
12.2 What is Message Broker?
12.3 RabbitMQ
12.4 RabbitMQ Exchange, Queue, Routing Key, & Binding
12.5 Reactive Microservices with RabbitMQ and ASP Core
12.6 Reactive Microservices using MassTransit
13. Distributed Transaction & Saga Pattern
14. Delivering Microservices