An SFU (Selective Forwarding Unit) receives audio and video streams from endpoints and relays them to everyone else (endpoints send one and receive many). Each receiver endpoint can select which streams and spatial/temporal layers it receives. Compared to a mixer or MCU (Multipoint Conferencing Unit) this design leads to a better performance, higher throughput and less latency. It's highly scalable and requires much less resources given that it does not transcode or mix media.
Since endpoints get the other endpoints' media separately, they can have a personalized layout and choose which streams to render and how to display them.
Detailed information regarding the architecture of an SFU can be found at RFC 7667 “RTP Topologies” section 3.7.
mediasoup and its client side libraries are designed to accomplish with the following goals:
mediasoup and its client side libraries provide a super low level API. They are intended to enable different use cases and scenarios, without any constraint or assumption. Some of these use cases are: