Tách tenant ngay từ mô hình domain
Một ứng dụng có nhiều tổ chức không tự động bảo đảm tenant isolation. Mọi query và mutation nhạy cảm cần được gắn tenant context xác thực ở server, và mọi endpoint phải có kiểm tra ủy quyền tương ứng.
Ràng buộc database, transaction scope và audit trail tạo thêm lớp phòng vệ cho lỗi lập trình.
Phân quyền là hợp đồng server-side
UI có thể ẩn hành động không được phép để giảm nhiễu, nhưng không thể là nguồn quyết định cuối cùng. API phải kiểm tra quyền trên từng thao tác và trả lỗi có cấu trúc.
Các bài kiểm thử cross-tenant và privilege escalation cần chạy như regression suite bắt buộc.
Migration không được đổi dữ liệu lấy tốc độ
Áp dụng expand-and-contract với thay đổi schema: bổ sung tương thích, migrate dữ liệu có thể kiểm chứng, chuyển luồng đọc/ghi, sau đó loại bỏ cấu trúc cũ khi an toàn.
Với tác vụ đồng thời và retry, cần idempotency keys, optimistic concurrency hoặc transaction phù hợp.
Quan sát hệ thống có ý nghĩa
- Metrics có ngữ cảnh tenant nhưng không làm lộ dữ liệu nhạy cảm.
- Request IDs và structured logs để lần theo lỗi xuyên các thành phần.
- Runbook cho backup, incident và rollback rõ chủ sở hữu.