LiveKit Cloud supports horizontal scaling of media nodes, but there are some architectural considerations to keep in mind:
•
Distributed Mesh Architecture: LiveKit uses a distributed mesh architecture where multiple SFU instances can connect and relay media between servers. This allows for horizontal scaling and bypasses the single-server limitation of traditional architectures.
•
Multi-Home Participant Distribution: Participants in the same room can connect to different SFUs based on their geographic location, minimizing latency and improving performance.
•
Dynamic Capacity Management: For high-capacity scenarios, LiveKit dynamically forms a distribution mesh, similar to a CDN, to handle scaling automatically without requiring special configurations.
•
Room-Level Limitation: Each room must fit within a single node. While LiveKit supports a large number of concurrent rooms in a multi-node setup, the participants in a single room are limited to the capacity of one node.
•
Scale Limits: LiveKit can theoretically support millions of participants per session, but practical limits are set at 100,000 simultaneous participants in a single session. For larger scales, you can request a limit increase through the Cloud dashboard.
In summary, LiveKit scales horizontally by distributing participants across multiple interconnected SFU instances in a mesh, but a single room cannot be split across multiple nodes. This ensures scalability while maintaining the room as a single logical entity.
Sources:
delay-handling/raw_data.txt |
Benchmarking | LiveKit Docs |
Distributed Setup | LiveKit Docs