Mesh is the simplest WebRTC topology: every participant has a peer connection with every other participant, and each participant uploads N-1 copies of their video (one per other participant). With 2 people each uploads 1 copy — trivial. With 4 people each uploads 3 copies — still fine on a typical home connection. With 8 people each uploads 7 copies — your uplink saturates and quality collapses. Practical mesh limit is about 4 participants on consumer connections.
The advantage of mesh is no server cost and minimum latency (peer-to-peer paths). The major disadvantage is the upload-bandwidth explosion. The secondary disadvantage is signalling complexity — N participants means N×(N-1)/2 peer connections to set up, with ICE and SDP negotiation for each. Modern WebRTC libraries handle this efficiently, but the data plane cost dominates.
Mesh is the right choice for two-person calls, small embedded video chat widgets, and peer-to-peer browser-to-browser content sharing. Anything beyond 4 participants warrants an SFU. Most production video apps (Zoom, Google Meet, Microsoft Teams) skip mesh entirely and use SFU even for two-person calls, accepting the marginal server cost for the uniformity of code path and the ability to scale up if more people join.

