Một service stateless không giữ trạng thái phiên giữa các request trong bộ nhớ cục bộ; mỗi request tự chứa đủ ngữ cảnh (hoặc tra từ store dùng chung).
Vì sao quan trọng:
- Scale ngang tự do: mọi instance tương đương → load balancer gửi request tới bất kỳ node nào, thêm/bớt node thoải mái.
- Chịu lỗi tốt: một node chết không mất session của user.
- Không cần sticky session (ghim user vào một node, gây mất cân bằng).
Để state ở đâu:
- Session store dùng chung (Redis/Memcached) — mọi node truy cập được.
- Token phía client (JWT): trạng thái nằm trong token đã ký, server không cần lưu (đổi lại khó thu hồi ngay).
- Dữ liệu bền → database; file → object storage.
Nguyên tắc: đẩy state ra khỏi tầng compute, giữ tầng ứng dụng stateless.