Chọn pattern theo boundary
- Ambassador: app gọi local proxy/gateway; sidecar đại diện cho outbound protocol, connection policy hoặc dependency access. Debug request path và timeout từ app → localhost → dependency.
- Adapter: sidecar đọc/nhận output rồi chuyển format/interface cho consumer. Debug data path, schema, file/port và backpressure.
Không lạm dụng sidecar
Pod-level locality có giá trị khi lifecycle/scale/coupling đi cùng nhau. Nếu proxy/adapter cần scale độc lập, có security boundary khác hoặc ownership khác, Service/Deployment riêng có thể phù hợp hơn. Cả hai pattern đều cần readiness, timeout, resource limits, graceful shutdown và failure policy; không tự tạo persistence/reliability.
Bài tập
Dựng Ambassador và Adapter riêng, verify request/data path, mô phỏng timeout/port/schema/permission failure, rồi lập matrix so sánh pattern với separate Service. Chọn một phương án cho case mới và bảo vệ quyết định bằng evidence/variant.