2013 ~ 2016
Era dominated by client state management where data from the server was stored and managed as global state. However, this was essentially equivalent to implementing server cache directly.
2017 ~ 2019
Facebook introduced GraphQL, bringing the concept of caching and auto-synchronizing server state on the client.
In 2018, React Hook made it possible to express data requests as hooks. However, Vue2 lacked Composition API, which explains why Server State Synchronization emerged faster in React than in Vue.
2019
Vercel announced SWR (Stale-While-Revalidate) based on the idea of "implementing HTTP caching strategy as React hooks." The term Server State Management emerged to contrast with traditional client state management. In reality, it's still client state management, more precisely server state synchronization.
2020
React Query further generalized this concept, combining SWR's simplicity with Apollo's power.
Summary
However, client state managers like Jotai, Pinia, and Zustand are still necessary for managing browser internals, local storage, and user interaction states. This historical progression occurred because client state managers like Redux attempted to manage server data as well. Modern libraries like Jotai and Zustand have abandoned this approach to focus specifically on client-side state management.