Cách các service nói chuyện: REST/gRPC đồng bộ (request-response, coupling chặt hơn nhưng dễ debug) so với message queue bất đồng bộ như RabbitMQ/Kafka (loose coupling, chịu lỗi tốt, đổi lại là eventual consistency).
- Service discovery: mỗi service tự đăng ký địa chỉ vào registry (Consul, etcd) để service khác tra cứu thay vì hardcode URL — bắt buộc khi số instance co giãn liên tục.
- API Gateway: một cửa vào duy nhất cho client, lo auth, rate limiting và routing, để client không phải biết topology bên trong (Kong, AWS API Gateway).
- Saga cho distributed transaction: choreography là các service phát event và service khác tự phản ứng (loose coupling); orchestration là một saga orchestrator điều phối tập trung (dễ debug hơn).
- Event sourcing: lưu toàn bộ chuỗi event thay vì chỉ state hiện tại — có audit log đầy đủ và replay lại được để dựng lại state.
Cái giá phải trả: phải dựng distributed tracing (Jaeger, Zipkin), mọi lời gọi hàm biến thành network latency, integration test phức tạp hơn hẳn và debug khó hơn nhiều.
Lưu ý: sai lầm hay gặp nhất là lên microservice quá sớm — cứ monolith trước, chỉ tách khi bounded context đã rõ và team đủ lớn để gánh.