matrix-org / matrix-org/matrix-js-sdk

MatrixRTCSessionManager: Support arbitrarily many applications and slots

Open
#5,035 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

A-Developer-Experience A-VoIP T-Enhancement
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.