Mafalda SFU projects
All Mafalda SFU packages have by design an orthogonal API, making it possible to combine them in a mix-n-match way to create the best fit for your use case. Next diagram shows all possible low-level combinations, and the projects implementing their high-level relationships:
Thick lines represent main usage relationships, thin lines are compatible ones but their usage is not promoted. Dotted line are client-server networked connections. Elements with blue color provides a Mediasoup compatible API, elements with green color provides Remote Mediasoup compatible API, and elements with orange color are Mafalda SFU specific internal components.
Main projects
-
Remote Mediasoup server & Remote Mediasoup client: remote control of Mediasoup instances, both of them build on top of ROPE server & ROPE client.
-
Mediasoup-proxy CLI: standalone server using Mediasoup-proxy to control a Remote Mediasoup server from another endpoint.
-
Mediasoup-cluster CLI: standalone server using Mediasoup-horizontal to control multiple Remote Mediasoup servers from a single endpoint, providing support for horizontal scalability.
-
Mediasoup-vertical-server and Mediasoup-vertical-proxy: implementations of Mediasoup-server and Mediasoup-proxy with integrated support for Mediasoup-vertical, unifying all server resources providing vertical scalability for them.
-
Mediasoup-vertical-cluster CLI: standalone server using Mediasoup-vertical on top of Mediasoup-horizontal, implementing aggregated scalability. This project is the flagship package of
Mafalda SFU
.
Auxiliary packages
- Mediasoup-vertical: Mediasoup vertical scalability, allow to have Router objects that by-pass Mediasoup per-Worker limits.
- Mediasoup-horizontal: Mediasoup horizontal scalability, allow to use Mediasoup Worker instances located on multiple servers from a single place as if they were local to it.
- ROPE server & ROPE client: canonical implementations of the Remote Objects, Procedures and Events protocol, that allow remote control of objects located as if they were local, including sync’ed updates of remote state, also when multiple clients are involved.
Future projects
- Mafalda-monitor: Mafalda SFU network monitoring tool, allow to control stats and loads of the servers in the network and their connected clients.
- Mafalda-swarm: Decentralized horizontal scaling for Mafalda SFU, allow to access streams from multiple entry points without a central management, based on P2P technologies and architecture.