matrix-org / matrix-org/matrix-js-sdk
MatrixRTCSessionManager: Support arbitrarily many applications and slots
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 2.2k
- Forks
- 704
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 40
Description
https://github.com/matrix-org/matrix-js-sdk/pull/5022#discussion_r2412462402 @robintown:
> Definitely not a task for this PR, but I'll note that particularly with the introduction of slots, we may want to rethink the role of the MatrixRTCSessionManager going forward.
>
> Currently "one `MatrixRTCSessionManager` is required for each MatrixRTC sessionDescription (application, session id) that the client wants to support" - but with us designing MatrixRTC such that clients of the future can add and remove slots on demand, do we really want clients to have to implement their own management of MatrixRTCSessionManager objects? 😵💫 (It would be non-trivial to manage them, as each Manager object handles a single slot ID across _all rooms_, so you need to ensure _one_ Manager exists for each slot ID used in 1 or more rooms, if you want to support arbitrary slots…)
>
> A more convenient design from my perspective would be for a single MatrixRTCSessionManager object to be responsible for all rooms and all slot IDs, storing a nested map of type `Map>` (room ID → slot ID → session). Which brings me back to #5033 😃
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the linked PR discussion and issue #5033, then trace MatrixRTCSessionManager and its sessionDescription handling. The intended result is one manager that supports all rooms and arbitrarily many slot IDs, rather than requiring clients to manage one manager per slot across rooms.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100