kellpossible / kellpossible/coster
Figure out how to efficiently persist state in the browser, and synchronize state with the server
- Dominant language
- Rust
- Stars
- 13
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
I need to figure out a way to:
+ Load state from `IndexedDB` on startup.
+ Efficiently write state changes to the `IndexedDB`.
+ Investigate a way to avoid storing all the state in the redux store (for large items like images, and big data). And an ergonomic way to lookup items from the state in the database, perhaps asynchronously.
+ Ability to synchronize the data changes in `IndexedDB` associated with state changes, with the server.
+ Ideally do this all in a flexible way that can be turned into a library or design pattern I can use for other projects.
Inspiration Projects:
+ https://github.com/rt2zz/redux-persist
To look into:
- [x] https://stackoverflow.com/questions/33992812/how-to-integrate-redux-with-very-large-data-sets-and-indexeddb/34031497
- [x] https://egghead.io/lessons/javascript-redux-persisting-the-state-to-the-local-storage
- [ ] Git LFS design
- [ ] https://github.com/BerserkerDotNet/BlazorState/blob/master/README.md
- [ ] https://github.com/mrpmorris/Fluxor/blob/master/README.md
Contributor guide
No contributing guide indexed for this repository
Research direction
The issue names IndexedDB, Redux, browser startup, and server synchronization but does not identify files, tests, or entry points. Start by locating the existing browser state and server integration, then compare the listed Redux persistence and Fluxor references. Done would require loading and efficiently persisting state, supporting large items outside Redux, and synchronizing changes with the server in a reusable design.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- api, databases, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100