Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Implement MSC4023: Thread ID for 2nd order-relation in Synapse #15701

Open
Johennes opened this issue Jun 1, 2023 · 1 comment
Open

Implement MSC4023: Thread ID for 2nd order-relation in Synapse #15701

Johennes opened this issue Jun 1, 2023 · 1 comment
Labels
A-Relations-Endpoint /relations A-Threads Threaded messages O-Occasional Affects or can be seen by some users regularly or most users rarely roadmap S-Minor Blocks non-critical functionality, workarounds exist. T-Task Refactoring, removal, replacement, enabling or disabling functionality, other engineering tasks.

Comments

@Johennes
Copy link

Johennes commented Jun 1, 2023

The proposal matrix-org/matrix-spec-proposals#4023 requires an implementation in Synapse.

This issue is part of the ongoing effort to fix stuck notifications in Element Web. As mentioned in @neilisfragile's engineering newsletter this week, we had to skip the last Element Web release because one of our client-side fixes has unhidden a larger battery of other issues that we have since been working on.

The biggest remaining issue we've narrowed things down onto this week is element-hq/element-web#25450. We've put in a client-side fix for this but the excess requests to fetch the unknown events have a performance impact. The size of the latter is hard to gauge but in our tests it was as bad as 5x in extreme cases.

After testing on today's nightly, we believe the general experience is good enough to unblock our release but preferably we'd like to limit the time window where performance is negatively impacted by leveraging server-side support through MSC4023.

@clokep
Copy link
Member

clokep commented Jun 1, 2023

A proof of concept can call RelationsWorkerStore.get_thread_id(...) for each event returned.

I think we would ideally want to calculate this for every event and store it. (I guess in the events table?) This is a bit tricky though since you might know about events A; C (which relates to B as a reaction). Then later find out that event B is a thread. So you need to retroactively add C from the main timeline to the B timeline.

@pmaier1 pmaier1 added the roadmap label Jun 2, 2023
@H-Shay H-Shay added T-Task Refactoring, removal, replacement, enabling or disabling functionality, other engineering tasks. O-Occasional Affects or can be seen by some users regularly or most users rarely S-Minor Blocks non-critical functionality, workarounds exist. labels Jun 6, 2023
@MadLittleMods MadLittleMods changed the title Implement MSC4023 in Synapse Implement MSC4023: Thread ID for 2nd order-relation in Synapse Jun 8, 2023
@MadLittleMods MadLittleMods added A-Threads Threaded messages A-Relations-Endpoint /relations labels Jun 8, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
A-Relations-Endpoint /relations A-Threads Threaded messages O-Occasional Affects or can be seen by some users regularly or most users rarely roadmap S-Minor Blocks non-critical functionality, workarounds exist. T-Task Refactoring, removal, replacement, enabling or disabling functionality, other engineering tasks.
Projects
None yet
Development

No branches or pull requests

5 participants