matrix-org / matrix-org/matrix-rust-sdk

Sync service exponential backoff

Open
#6,505 2 comments 0 reactions 0 assignees View on GitHub
A-Sync
Dominant language
Rust
Stars
2.3k
Forks
500
Avg merge
1d 16h
Merged PRs (30d)
106

Description

Based on these two client community pull request:
* https://github.com/element-hq/element-x-ios/pull/5354
* https://github.com/element-hq/element-x-android/pull/6532

We have a agreed that exponential backoff for the client's sync service is something worth having, and that the best way to achieve it will probably be introducing a new state in it state machine.

This comes somewhat complementary to the idea of an "AppService" where the sync service, the room list service, the sync indicator and the send queue (a non exaustive list probably), will be all be handle on the SDK side with just simple signal being sent from the app (connectivity state, app running state etc.).

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the linked Element X iOS and Android pull requests, then trace the SDK's sync service state machine. Define how a new state represents exponential backoff and how it interacts with connectivity and application-running signals. Done means the sync service retries with exponential backoff and its state transitions are covered by tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.