Skip to content

feat: introduce reliable channels #2652

@weboko

Description

@weboko

Problem / Description

Provide off-the-shelf end-to-end reliability feature that developer can use to ensure all participants in group chats or channels have the same set of messages.

Solution

Easy to use Scalable Data Sync (SDS, e2e reliability) wrapper, that includes:

  • store queries upon connection to store nodes
  • store queries to retrieve missing messages

Notes

Dogfooding example: https://chat.fryorcraken.xyz https://github.com/fryorcraken/retro-chat

Limitations, in order of priority for later implementation:

  1. Does not handle irretrievably lost messages: Will be needed to ensure that a participant that comes mid-conversation can participant in acknowledgements
  2. Does a flat message retry mechanism, and does not emit any event when giving up. Back-off and event emission would be better.
  3. Does not implement sds-repair for message retrieval without store.
  4. Does not include local storage of messages.
  5. Try to return message id from send and see if it works to setup listeners straight after.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions