Bảng tra cứu nhanh
Gặp tình huống nào thì thường chọn gì, và vì sao.
Gặp một tình huống, đối chiếu lựa chọn thường dùng trước khi thiết kế thêm.
Sản phẩm mới, ít người dùng: monolith và một DB quan hệ, để ra mắt nhanh. Đọc nhiều ghi ít: cache-aside và read replica. Tiền, tồn kho, đặt chỗ: SQL, transaction, khóa phù hợp. Lưu tiền: decimal hoặc số nguyên đơn vị nhỏ nhất, không dùng float. Feed, like, log, IoT: NoSQL và eventual consistency khi chấp nhận lệch tạm. Đổi schema đang chạy: migration expand rồi contract. Việc nặng không cần trả lời ngay: queue. Nhiều service cần biết một sự kiện: event stream. Client gửi lại request: idempotency key. Hai người sửa cùng một dòng: optimistic lock nếu xung đột ít, pessimistic lock nếu xung đột nhiều. Gọi service khác: timeout, retry có backoff, circuit breaker. API công khai: rate limit, authn, authz, kiểm tra input.