matters-server
matters-server copied to clipboard
Epic: Publish on Planet or Matters.News and then publish on Matters.News or Planet
Part of milestone https://github.com/thematters/matters-server/issues/2590.
To allow different clients to write to the same social and content graph, we need to solve race conditions. Assume client A and client C are all configured with the key pair for a content feed. If client A publishes an update to the feed, client B publishes another update to the same feed before receiving the update from client A; client B should be able to resolve the conflicts when it eventually receives the update from client A.
This can be achieved by using CRDT as the storage data structure, such as Automerge. There are also CRDT storage solutions built on top of IPNS, such as OrbitDB. However, these options are not directly compatible with RSS format.
A naive workaround is storing the feed data in a CRDT format, and each client builds an RSS file from the CRDT every time it publishes a change. In this way, the RSS file is eventually consistent.