element-hq / element-hq/synapse

simplify federation stream traffic

Open
#7,549 0 comments 0 reactions 0 assignees View on GitHub
A-Workers O-Uncommon S-Tolerable T-Task
Dominant language
Python
Stars
4.6k
Forks
600
Avg merge
5d 22h
Merged PRs (30d)
51

Description

This issue has been migrated from [#7549](https://github.com/matrix-org/synapse/issues/7549).

---

The `federation` replication stream has four types of row:

* presence
* presence_destinations
* keyed_edus
* edus

`edus` is completely unused afaict, and `keyed_edus` is only used for typing updates. This is somewhat important, as the federation stream is not reliable (we can drop rows during restarts). Additionally, since typing notifications are typically sent to a lot of destinations, there is a lot of duplication.

Could/should we replace `keyed_edus` and `edus` with a single `typing` row type, and while we're at it remove a bunch of dead code in `FederationSender`/`FederationRemoteSendQueue`/`PerDestinationQueue` (eg `PerDestinationQueue._pending_edus` is never used)?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.