How are workers distributed across multiple LiveKit server nodes?

This question originally came up in our Slack community and the thread has been consolidated here for long-term reference.

Each worker registers itself with a LiveKit server to receive jobs.

Is there an example or recommended setup for distributing workers evenly across multiple LiveKit server nodes? Or can workers form a common pool shared between all LiveKit servers?

LiveKit load balances traffic across all workers using a distributed mesh architecture.

See How We Built a Globally Distributed WebRTC Mesh Network