Chronology

Total development time: 30 months

Stage 1: vertical scaling (March - June 2021)

March 2021

  • Started project design and architecture

April 2021

  • Develop Mafalda module (vertical scaling core)

May 2021

  • Mafalda module (vertical scaling core) is feature complete, matching all Mediasoup functionality

June 2021

  • Mafalda module (vertical scaling core) has 100% tests coverage for both lines, statements, functions and branches

Stage 2: remote control (July - October 2021)

July 2021

  • Design of horizontal scaling architecture and remote control protocol
  • Started development of Remote Mediasoup and Remote Mafalda clients
  • Unified APIs of local libraries and remote clients (both pass the same API acceptance tests)
  • Ensure no more Workers than CPUs are being used, also from different processes (using FsSet module internally)
  • Started development of Remote Mafalda and Remote Mediasoup servers

August 2021

September 2021

  • Both Remote Mediasoup and Remote Mafalda clients and servers are feature complete
  • Remote Mafalda integration tests are passing

October 2021

  • Improve tests coverage of remote control and fix tests auxiliar dependencies
  • Fix remote objects protocol and full restore of remote state on connection
  • Adjust to new Mediasoup API (removal of leaked private properties and methods)

November 2021

  • Improved documentation
  • All Mafalda SFU modules are composable between them

December 2021

January 2022

  • Implemented Mediasoup cluster, with 100% tests coverage
  • Improve reliability of remote control
  • 100% tests coverage for all remote control modules

Stage 3: Easy porting of actual applications (April - July 2022 and December 2022 - January 2023)

April 2022

May 2022

June 2022

  • Define customized linting configuration and unify code style in all projects
  • De-duplicate appData objects in Remote Mediasoup

July 2022

  • Finish de-duplication of appData objects in Remote Mediasoup

December 2022

  • Fix final bugs for porting EduMeet to Remote Mediasoup
  • Automate and update projects documentation

January 2023

  • Update projects documentation and main webpage
  • Update Mafalda SFU repositories to use new Remote Mediasoup and ROPE client APIs
  • Improve testing, linting and documentation generation in all projects, and automate them in CI servers
  • Start design and architecture of Mediasoup vertical module

Stage 4: Mediasoup vertical scaling & packages publishing (February - December 2023)

February 2023

  • Work on implement vertical scaling of Mediasoup, based on code from Mafalda module.

March 2023

  • Improve usage and publish of standalone servers

April 2023

  • Improve publish of standalone servers and client libraries
  • Publish packages to NPM and Github Packages Registry

May 2023

  • Update web page and documentation
  • Improve stability of CI servers and standalone packages
  • Implement packages licenses system

June 2023

  • Improve documentation
  • Improve clients-servers connections security
  • Reduce size of standalone servers

July 2023

  • QA in a Box: create npm package with all the needed tools and unified config files for all the Mafalda SFU projects

August 2023

Development was temporaly paused due to professional responsibilities.

September 2023

  • Improve projects stability and reliability

October 2023

  • Improve projects testing

November 2023

  • Improve reliability of Horizontal and Clustered Mediasoup, and prepare compatibility with Mediasoup Vertical

December 2023

January 2024

  • Automate testing and publishing of all packages
  • Improve investors documentation

February 2024

  • Automate testing and publishing of all packages

Stage 5: (December 2024 - March 2025)

December 2024

  • Update APIs and compatibility with latest Mediasoup version

February 2025

  • Unify APIs & improve modules composability

March 2025

  • Unify APIs & improve modules composability
  • Aggregated scalability (vertical on top of horizontal)
  • Prepare for the next stage: Mediasoup as a Service

Stage 6: Mediasoup as a Service (April 2025 - Currently in progress)

Notify about actual servers usage so it’s possible to spin-up more instances on demand, as a previous step to start offering Remote Mediasoup instances on the cloud.

Roadmap

All dates are estimated and can suffer of variations. If you are interested on any of the future roadmap topics, contact us to discuss for commercial services.

Stage 7: Mafalda Monitor: network monitor (October 2025 - January 2026)

Tool to monitor in real time the usage and capacity of all servers and clients in the network: CPU usage of Workers, number of Routers and Transports…

Stage 8: Mafalda Swarm: P2P decentralized scaling (February - July 2026)

Use of a Distributed Hash Table to register the Mafalda instances and send requests directly between them, without a central controller. Also use it to search for original Producers of a stream and ask for them to connect.