- Communication patterns: sync REST/gRPC (request-response, coupling chặt hơn, dễ debug) vs async message queue — RabbitMQ/Kafka (loose coupling, resilient, nhưng eventual consistency).
- Service discovery: mỗi service đăng ký địa chỉ vào registry (Consul, etcd), services khác lookup thay vì hardcode URL — cần thiết khi services scale up/down động.
- API Gateway: single entry point cho clients, xử lý auth/rate-limiting/routing, tránh clients phải biết topology nội bộ (Kong, AWS API Gateway).
- Saga pattern cho distributed transactions: Choreography (services emit events, services khác react — loose coupling) vs Orchestration (central saga orchestrator điều phối — dễ debug hơn).
- Event sourcing: lưu toàn bộ events thay vì current state — audit log hoàn chỉnh, có thể replay để rebuild state.
- Nhược điểm thực tế: distributed tracing cần setup (Jaeger, Zipkin), network latency thay vì function call, integration tests phức tạp hơn, debugging khó hơn.
Pitfall: microservices quá sớm — monolith trước, tách khi có bounded contexts rõ ràng và team đủ lớn.