- Đồng bộ (request/response) — REST hoặc gRPC: gọi trực tiếp và chờ phản hồi. Đơn giản, hợp khi cần kết quả ngay (đọc dữ liệu, xác thực). gRPC nhanh hơn REST (HTTP/2, protobuf, streaming). Nhược điểm: coupling theo thời gian — callee chậm/chết thì caller bị ảnh hưởng → cần timeout, retry, circuit breaker.
- Bất đồng bộ (message/event) qua broker (Kafka, RabbitMQ): producer phát rồi đi tiếp, không chờ. Ưu: decoupling mạnh, chịu tải đột biến (buffer), một consumer chết không chặn producer, dễ fan-out. Nhược: chỉ eventual consistency, khó theo dõi luồng, phải xử lý message trùng.
Quy tắc: cần trả lời tức thì cho user → đồng bộ; fire-and-forget, tác vụ nền, nhiều bên tiêu thụ, chịu tải → bất đồng bộ. Nhiều hệ dùng cả hai tùy luồng.