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:

Mediasoup vertical cluster
Mediasoup vertical server
Mediasoup vertical proxy
Mediasoup proxy
Mediasoup server
Mediasoup cluster
App
Mediasoup
Mediasoup horizontal
Mediasoup vertical
Remote Mediasoup client
Remote Mediasoup client mock
Remote Mediasoup server
Mediasoup getStats factory

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-server
    Remote Mediasoup server
    Mediasoup getStats factory
    Mediasoup
    Remote Mediasoup server CLI
  • Mediasoup-proxy CLI: standalone server using Mediasoup-proxy to control a Remote Mediasoup server from another endpoint.

    Mediasoup-proxy
    Remote Mediasoup server
    Remote Mediasoup client
    Mediasoup proxy CLI
  • Mediasoup-cluster CLI: standalone server using Mediasoup-horizontal to control multiple Remote Mediasoup servers from a single endpoint, providing support for horizontal scalability.

    Mediasoup-cluster
    Remote Mediasoup server
    Mediasoup horizontal
    Remote Mediasoup client
    Remote Mediasoup client
    Mediasoup cluster CLI
  • 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-server
    Remote Mediasoup server
    Mediasoup vertical
    Mediasoup getStats factory
    Mediasoup
    Remote Mediasoup server CLI
    Mediasoup-vertical-proxy
    Remote Mediasoup server
    Mediasoup vertical
    Remote Mediasoup client
    Mediasoup vertical proxy CLI
  • 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.

    Mediasoup-vertical-cluster
    Remote Mediasoup server
    Mediasoup vertical
    Mediasoup horizontal
    Remote Mediasoup client
    Remote Mediasoup client
    Mediasoup vertical cluster CLI

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.