for many peers webrtc needs to have a channel for each peer with each of the another peer which doesnt scale , for n peer it needs n-1 connection with others peers , with is o(n^2)
so we use SFU (Selective Forwarding Unit )
- Each client uploads once, regardless of how many viewers there are (O(1) upload cost per client, not O(N))
- The SFU absorbs the O(N) or O(N²) fan-out cost, and servers have datacenter-grade bandwidth to handle it
- Clients still decode multiple incoming streams if it's a multi-party call, but that's typically cheaper than encoding (decoding is less CPU-intensive)