Cắt theo năng lực nghiệp vụ (business capability) / subdomain, không cắt theo tầng kỹ thuật.
Bounded context là phạm vi mà một mô hình dữ liệu có nghĩa nhất quán. Ví dụ chữ "Order":
- Trong context Bán hàng: Order có giỏ hàng, khuyến mãi, tổng tiền.
- Trong context Kho vận: Order chỉ là danh sách mặt hàng cần lấy và địa chỉ giao.
Hai nơi cùng gọi là Order nhưng không cùng một model. Ranh giới giữa chúng chính là ranh giới service tự nhiên.
Dấu hiệu cắt đúng:
- Một yêu cầu nghiệp vụ điển hình chỉ sửa một service.
- Service tự trả lời được phần lớn request bằng dữ liệu của chính nó, ít phải hỏi service khác.
- Ranh giới trùng với ranh giới đội ngũ và ngôn ngữ của người dùng nghiệp vụ.
Cắt sai điển hình: chia thành user-service, db-service, validation-service — đó là chia theo tầng kỹ thuật. Thêm một trường vào form sẽ phải sửa cả ba, deploy cả ba. Cắt quá nhỏ ("nano service") cũng sai: chi phí gọi mạng và vận hành lớn hơn phần logic bên trong.