matrix-org / matrix-org/matrix-rust-sdk
Sync service exponential backoff
- 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
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