State Management in 2025: TanStack Query vs. Redux
Most 'state' is really server cache. Separate the two and the hard problem mostly disappears.
The biggest unlock in modern React is recognizing that most state isn't client state — it's a cache of server data. TanStack Query owns that: fetching, caching, invalidation, and background refresh, all with far less code than hand-rolled Redux thunks.
Redux still earns its keep for genuinely global client state — complex UI orchestration, multi-step flows, cross-cutting concerns. The mistake is using it for server data it was never meant to hold.
My default is server cache via Query plus local component state, reaching for a global store only when shared client state truly demands it.
Vivek Jalondhara
Full Stack Software Engineer