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

February and March 2022

Development was temporaly paused due to professional responsibilities.

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

August to November 2022

Development was temporaly paused due to professional responsibilities.

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: Aggregated scalability (March 2024 - Currently)

Roadmap

All dates are estimated and can suffer of variations depending of the found difficulties, development speed, or due to having other personal or professional priorities. If you are interested on any of the future roadmap topics, contact us to discuss a sponsorship or commercial services.

Stage 6: Mediasoup as a Service (April - September 2024)

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.

Stage 7: Mafalda Monitor: network monitorization (October 2024 - January 2025)

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 2025)

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.