Trung BìnhSystem Design iconSystem Design

Các pattern horizontal scaling cho stateful services là gì? Làm thế nào để handle session state? (What are horizontal scaling patterns for stateful services? How to handle session state?)

Stateful services yêu cầu externalize state; các lựa chọn chính là Sticky Sessions, Externalized Store (Redis), và JWT — mỗi cách có trade-off riêng về complexity và failover.

  • Sticky Sessions: load balancer route cùng user về cùng server dựa trên cookie — đơn giản nhưng tạo uneven load và failover khó.
  • Externalized Session Store: lưu session trong Redis/Memcached thay vì in-memory — mọi instance đọc được, dễ scale và failover.
  • JWT Tokens: encode state vào token, server không lưu state — hoàn toàn stateless nhưng không thể revoke trước khi expire (giải quyết bằng blacklist).
  • Database-backed Sessions: lưu session trong DB — đơn giản nhưng chậm hơn Redis.

Thực tế: JWT cho authentication + Redis cho session data ngắn hạn là pattern phổ biến nhất.

Xem toàn bộ System Design cùng filter theo level & chủ đề con.

Mở danh sách System Design