The idea of SyncState came out of a team that was building a multiplayer design tool using React. The team is a big fan of Redux, Recoil, MobX and MobX-State-Tree. Each one of them solve similar problems in their own ways. But, building realtime multi-user apps requires a bit more effort than storing and retrieving states.
- Efficient re-rendering of the mounted components.
- Data syncing between threads & sessions.
- Conflict resolution between multiple sessions.
- Local History (Undo / Redo) & Remote History (Versioning).
- Standard replay-able actions over custom actions.
- Optimistic updates and reversal when invalid.
SyncState solves these problems using JSON patches. Having used it successfully at GeekyAnts, we decided to create an open source library for this, which could also serve as a general purpose state management solution.