Skip to main content

Yet another load balancer for BigBlueButton

Project description

BBBLB: BigBlueButton Load Balancer

BBBLB (BigBlueButton Load Balancer) is yet another load balancer for BigBlueButton. It is designed to provide a secure, scalable, and robust way to scale BBB beyond single-server installations, enabling organizations to distribute meetings across many BBB servers or offer managed BBB hosting services on shared hardware.

:warning: BBBLB is not ready for production just yet unless you know how to fix bugs yourself. It works well enough, but APIs and features are not stable yet and upgrades may break things. If you are looking for a reliable solution that just works, better wait for the 1.0 release.

Documentation

Documentation can be found at https://bbblb.readthedocs.io/ or in the ./docs/ folder. This is still a work in progress. Pull requests are very welcomed!

Features

  • Multi-Tenancy: Allow multiple front-end applications or customers to share the same BigBlueButton cluster while keeping their meetings and recordings strictly separated.
  • Advanced Loadbalancing: Meetings are distributed based on current and predicted utilization, taking common usage patterns into account and avoiding the infamous ‘trampling herd’ problem.
  • Recording Management: Recordings are transferred from the BBB servers to central storage via a simple and robust post_publish script. No special configuration, ssh transfers or shared network file system necessary.
  • Callback Relay: Callbacks registered for a meeting are properly relayed between the back-end BBB server and the front-end application with a robust retry-mechanism.
  • Management API: BBBLB offers its own API and command line tool to fetch health information, manage tenants, servers or recordings, or perform maintenance tasks.
  • Easy to deploy: At least easier than most other BigBlueButton Load Balancer implementations.

Architecture

BBBLB acts as a central API gateway, intelligently routing API requests and distributing meetings across a scaleable pool of BigBlueButton instances.

---
config:
  look: handDrawn
  theme: neutral
---
graph TD
    Clients("Clients / Apps
    e.g. Moodle")
    BBBLB["BBBLB (Loadbalancer)"]
    
    subgraph Cluster [BBB Server Pool]
        BBB1[BBB Server 1]
        BBB2[BBB Server 2]
        BBBN[BBB Server N]
    end

    %% Define Flow
    Clients -->|BBB API| BBBLB
    BBBLB -->|BBB API| BBB1
    BBBLB -->|BBB API| BBB2
    BBBLB -->|BBB API| BBBN

Contributing

By contributing to this project, you confirm that you understand and agree to both the Developer Certificate of Origin and the Contributor License Agreement, which can be found in the CONTRIBUTING.md file.

Sponsors

License

BBBLB - BigBlueButton Load Balancer
Copyright (C) 2025  Marcel Hellkamp

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bbblb-0.0.13.tar.gz (183.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bbblb-0.0.13-py3-none-any.whl (86.7 kB view details)

Uploaded Python 3

File details

Details for the file bbblb-0.0.13.tar.gz.

File metadata

  • Download URL: bbblb-0.0.13.tar.gz
  • Upload date:
  • Size: 183.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.25 {"installer":{"name":"uv","version":"0.9.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for bbblb-0.0.13.tar.gz
Algorithm Hash digest
SHA256 f6fa1dfb6348da025282a5c82391bee58863bb711cbf259a276565f135b5f620
MD5 f3274dfb77ce242131b0f97d8309eae1
BLAKE2b-256 7f227290c4716bbeed4c64cbc1d691007de703dfbe5aa0f098f5ac025ae1c676

See more details on using hashes here.

File details

Details for the file bbblb-0.0.13-py3-none-any.whl.

File metadata

  • Download URL: bbblb-0.0.13-py3-none-any.whl
  • Upload date:
  • Size: 86.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.25 {"installer":{"name":"uv","version":"0.9.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for bbblb-0.0.13-py3-none-any.whl
Algorithm Hash digest
SHA256 117491f841930e28c5764b8327cb01bd7269fb5cb3190a38baf34dc22b537773
MD5 79a751f699f9562d3e86138e53f7cb80
BLAKE2b-256 98dedc53ef0dc028441ade701438ca1c33e49ee61184e28e3deb45bad7886e2d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page