Budget: 1909 USD Deadline: 21 days
For the development of the on-premise system "ViM" with 100 connections (10 rooms for 10 people each), it is critically important to lay down the correct SFU architecture with an eye on growth. It is optimal to use mediasoup in Docker with a host network, which will eliminate NAT issues and allow for efficient CPU core utilization.
My approach is based on separating the signaling layer (Node.js/Socket.io + Redis for rooms) and media servers. As the load increases to 1000 users, we scale the platform horizontally by adding SFU nodes and connecting them via PipeTransports. To give an idea, initializing a mediasoup worker looks something like this:
const worker = await mediasoup.createWorker({ rtcMinPort: 10000, rtcMaxPort: 20000 });
const router = await worker.createRouter({ mediaCodecs });
const transport = await router.createPipeTransport({ listenIp: '0.0.0.0' });
I am ready to deploy a basic SFU prototype in Docker on your test server within 3 days after receiving access.