</>
⌕
Mid #monolith#microservices#architecture#api-gateway

Monolith hay microservices: đánh đổi là gì?

⚡ Trả lời nhanh

Monolith là một khối deploy: đơn giản, dễ debug, giao dịch cục bộ nhưng khó scale từng phần và dễ rối khi lớn. Microservices tách theo bounded context, deploy và scale độc lập, nhưng thêm độ phức tạp mạng, dữ liệu phân tán, observability. Nên bắt đầu monolith module hoá.

MonolithMicroservices
Deploymột lầnđộc lập từng service
Scalecả khốitừng service
Giao dịchACID cục bộsaga, eventual consistency
Gọi nhaufunction callnetwork (latency, lỗi một phần)
Vận hànhđơn giảncần CI/CD, tracing, service discovery
Phù hợpteam nhỏ, sản phẩm đầunhiều team, miền rõ ràng
Client -> API Gateway -> [Order] [Payment] [Inventory]
                          (mỗi service một database riêng)
  • API gateway làm cửa vào duy nhất: routing, auth, rate limit, aggregation.
  • Anti-pattern: distributed monolith, các service chia sẻ chung một DB hoặc phải deploy cùng nhau.
🃏 Ôn bằng flashcard