Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/norfairking/mergeful
Safely synchronise values with safe merge conflicts.
https://github.com/norfairking/mergeful
Last synced: 2 months ago
JSON representation
Safely synchronise values with safe merge conflicts.
- Host: GitHub
- URL: https://github.com/norfairking/mergeful
- Owner: NorfairKing
- Created: 2019-08-19T13:35:06.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-10-12T23:38:02.000Z (3 months ago)
- Last Synced: 2024-10-28T14:09:26.537Z (3 months ago)
- Language: Haskell
- Homepage: http://hackage.haskell.org/package/mergeful
- Size: 10.9 MB
- Stars: 8
- Watchers: 5
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
# Mergefull
A way to synchronise items with safe merge conflicts.
## Related project
If the collection that you are syncing has immutable items, you will be better off using [mergeless](https://github.com/NorfairKing/mergeless#readme) instead.
## Implementation overview
Situation: Multiple clients (for example a note synchronisation app) want to sync with a server storing state for them.
Goal: Get clients to agree on the collection of items and prevent that one client accidentally overrides a value saved by another client.
Solution: Store a server-side name and monotonically increasing number (revision number of the data, or current time) for each number.See the following blogposts for (many) more details:
- https://cs-syd.eu/posts/2019-10-14-mergeful-value
- https://cs-syd.eu/posts/2019-11-28-mergeful-item
- https://cs-syd.eu/posts/2019-12-28-mergeful-collectionor the talk at Haskellerz:
https://www.youtube.com/watch?v=MkbhHmAk47k