Kiến trúc khác nhau căn bản: Redux theo Flux pattern — action object → dispatch → middleware → reducer → new state; Zustand không có khái niệm action types hay reducers — chỉ là functions gọi set().
- Redux bắt buộc: Provider wrapper, combineReducers, action creators, selectors riêng biệt, middleware để async.
- Zustand không cần gì trong số đó.
- Redux enforces một flow dữ liệu nghiêm ngặt (tốt cho team lớn, audit), Zustand flexible hơn (tốt cho DX và speed).
- Về middleware: Redux có ecosystem middleware phong phú (thunk, saga, logger, sentry), Zustand có middleware nhẹ hơn (devtools, persist, immer) nhưng đủ dùng cho hầu hết cases.
- Về DevTools: cả hai đều kết nối được Redux DevTools Extension.
- Khi Zustand tỏa sáng: prototype nhanh, app vừa, team nhỏ.
- Khi Redux tỏa sáng: large team cần consistency, cần RTK Query, cần full audit trail, cần time-travel debugging end-to-end.