-
-
Notifications
You must be signed in to change notification settings - Fork 643
Implement Sticky Events MSC4354 #5028
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This feels super close. I think the only open comment is the sync accumulator prune logic and the delay comment. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven't yet reviewed the file for the RoomStickyEventsStore but hopefully this is a good start:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Still working through this bit by bit as I had some thoughts I wanted to leave on the MSC as well. Here are my comments so far:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay, got through the rest, I feel reasonably confident now that everything's doing what it's supposed to.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎉
Oh, there is one recent change to the MSC: matrix-org/matrix-spec-proposals#4354 (comment)
I'm happy to have that wait for a follow-up PR, or simply be an outstanding task for bulletproofing the implementation. |
I'm not convinced this should be up to the client but that might be a fight for the spec. Let's see where this leads and follow up with a PR if required. It's certainly fairly edge-cased to me.
|
Split out from #5017 to allow for easy reviewing. Implements matrix-org/matrix-spec-proposals#4354
As a brief overview of the MSC (though please do at least skim the MSC): This allows any member in a room to mark an event as "sticky" and ensure it gets delivered to other users even in the case of a gappy sync. This is useful for things like RTC where you want call member events to always reach clients, without having to bloat the room with state events that will contribute to overall DAG bloat.
This implementation also deals with ensuring that some events will replace predecessors that share the same "sticky key", and emit the appropriate notices to users of the API.
Checklist
public
/exported
symbols have accurate TSDoc documentation.