DAX (DynamoDB Accelerator)

Tổng quan
- Là service cache in-memory dành riêng cho DynamoDB, được quản lý hoàn toàn (fully-managed), độ khả dụng cao và tích hợp liền mạch.
- Giúp giảm tắc nghẽn khi đọc (read congestion) bằng cách cache dữ liệu.
- Độ trễ đọc cache ở mức microseconds – cực nhanh.
- Không cần thay đổi logic ứng dụng (tương thích với các API hiện tại của DynamoDB).
- TTL (time-to-live) mặc định cho cache là 5 phút.

- Ứng dụng (Application) không truy cập trực tiếp DynamoDB, mà thay vào đó đi qua DAX Cluster.
- DAX Cluster bao gồm nhiều node cache, đóng vai trò như layer trung gian.
- Khi có yêu cầu đọc:
- Nếu dữ liệu có trong cache (DAX node) → trả về ngay (microsecond-level).
- Nếu không có → DAX sẽ fetch từ DynamoDB, lưu vào cache, sau đó trả về.
- TTL 5 phút: Dữ liệu cache sẽ tự động hết hạn sau 5 phút, đảm bảo không quá cũ.
Tại sao dùng DAX thay vì ElastiCache cho DynamoDB
Về cơ bản:
- DAX là caching layer chuyên biệt cho DynamoDB → tích hợp sâu với DynamoDB, API tương thích hoàn toàn.
- ElastiCache là dịch vụ cache general-purpose (Redis/Memcached) → không tích hợp trực tiếp với DynamoDB, phải tự lập trình logic cache thủ công.

Khi nào KHÔNG dùng DAX mà nên dùng ElastiCache?
- Bạn muốn cache kết quả xử lý phức tạp / aggregation / custom logic:
- ElastiCache mạnh ở cache result tùy ý (VD: kết quả tổng hợp, tính toán, filter tùy chỉnh).
- Trong sơ đồ: ElastiCache dùng để "Store Aggregation Result".
- Use case vượt ra ngoài DynamoDB:
VD: cache dữ liệu đến từ nhiều nguồn (RDS, API khác…) → ElastiCache linh hoạt hơn. - Muốn toàn quyền kiểm soát TTL, eviction policy, hoặc dùng Redis features như pub/sub, sorted set…:
- ElastiCache mạnh về custom logic + feature-rich hơn.
Bạn thấy bài này thế nào?