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

[WIP] Add Presence module #1879

Closed
wants to merge 83 commits into from
Closed

Conversation

S7evinK
Copy link
Contributor

@S7evinK S7evinK commented Jun 18, 2021

WIP of a presence implementation. (#602)

Todo:

  • Implement GetPresence
  • Add m.presence to gomatrixserverlib
  • Implement /sync
  • Implement federationapi & sender

Questions:

  • Where to store the data? (memory is not possible, as we need to store e.g. status_msg)
  • Add a new component? (would make sense for the future, scaling wise [IMHO])

Pull Request Checklist

  • I have added any new tests that need to pass to sytest-whitelist as specified in docs/sytest.md
  • Pull request includes a sign off

@r3k2
Copy link

r3k2 commented Jul 7, 2021

When will this be on master?

@S7evinK
Copy link
Contributor Author

S7evinK commented Jul 9, 2021

@r3k2 There are still some missing pieces (e.g. database), which I didn't start yet.

@S7evinK
Copy link
Contributor Author

S7evinK commented Jul 11, 2021

@kegsay @neilalexander
Opinions on where to store the data?

syncapi (same as receipts) - would require an inthttp package for getting the presence from the clientapi
eduserver - would require a new database

The other idea would be, as mentioned, a new component with the known pros/cons.

@kegsay
Copy link
Member

kegsay commented Jul 19, 2021

Adding components is extremely costly and incurs IPC costs on any public API. We generally want to stick logic to orthogonal scaling points. Presence will scale based on the number of users independent of rooms, which is the same as the user API, so that feels like the most logical place to put this.

@S7evinK
Copy link
Contributor Author

S7evinK commented Nov 19, 2021

Unfortunately still stuck with the following tests. full-api mode is a bit worse, probably just error handling, didn't have a look at that yet.

Presence: 67% (10/15 tests)
    × Newly joined room includes presence in incremental sync
    × Get presence for newly joined members in incremental sync
    × User sees their own presence in a sync
    × User sees updates to presence from other users in the incremental sync.
    × New federated private chats get full presence information (SYN-115)

@thinkwelltwd
Copy link

I'm doing some due diligence research about moving to a multi-homeserver Matrix deployment. For performance benefits, I'd be very glad to deploy Dendrite, but for the lack of presence. Is there any sort of ETA (ie 1-6 months) for this PR, or should I just plan to go with Synapse?

@S7evinK
Copy link
Contributor Author

S7evinK commented Mar 15, 2022

As there have been many changes since I've started working on this, and I now know better (hopefully), I'll close this for now. But definitely will revisit this, unfortunately no ETA on this.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants