Jotai phù hợp cho state có cấu trúc graph với nhiều derived values; Zustand/Redux phù hợp khi cần single source of truth serialize được và time-travel debug.
Decision matrix — dùng Atomic (Jotai) khi:
- State có cấu trúc graph, nhiều derived values từ base atoms (ví dụ: cart total, filtered lists, computed stats đều derive từ cùng nguồn);
- Cần fine-grained updates — 1000 items list, mỗi item là 1 atom, chỉ item thay đổi mới re-render;
- State không nhất thiết phải centralized — features khác nhau sở hữu atoms riêng;
- Cần co-locate state với components sử dụng nó
Dùng Redux/Zustand khi: cần single source of truth có thể serialize/rehydrate, cần time-travel debugging, team quen với flux pattern, cần middleware pipeline (logging, side effects).
Real use cases Atomic: collaborative editor (mỗi doc element là atom), form builder (mỗi field là atom), dashboard với nhiều widgets độc lập.
Pitfall: atomic state khó debug hơn khi dependencies phức tạp — không có Redux DevTools tương đương để xem toàn bộ state graph.