Microservices thường là lựa chọn khởi đầu sai. Một quy tắc phổ biến là "monolith first": bắt đầu với một monolith có cấu trúc tốt và chỉ trích xuất service khi bạn có lý do cụ thể.
Tránh microservices khi
text
✗ Team nhỏ — nhiều service hơn số người để vận hành chúng
✗ Sản phẩm giai đoạn đầu — ranh giới miền nghiệp vụ còn dịch chuyển
✗ Chưa có CI/CD, monitoring, hay tracing
✗ Lưu lượng thấp — không có áp lực mở rộng thực sự
✗ Miền nghiệp vụ đơn giản — tách ra thêm chi phí, không thêm giá trị
Cái giá của việc tách quá sớm
Chuyển một lời gọi phương thức trong tiến trình thành một lời gọi mạng thêm độ trễ, các kiểu lỗi, serialization, và một đơn vị triển khai. Nếu ranh giới sai, bạn trả tất cả những thứ đó vẫn phải refactor xuyên các service.
