The Busby toolkit

What is Busby?

Busby is a microservices, low-code platform used to create enterprise level applications in the media space. The toolkit is made up of a number of components, that together give Busby its power.

At its core is a microservices platform with a robust messaging system. This provides built in redundancy, scaling, centralised configuration and support for multiple deployments.

On top of this core are many subsystems to allow for workflows, machine control, alarms, resources, user interfaces and more.

Microservices

At the heart of any Busby installation are an orchestrated set of loosely coupled microservices. Using Busby as the microservices architecture allows organisations to deliver systems that are large, complex and forever changing. New services can be deployed on running systems without everything having to be changed all at once. Busby makes it easy, by creating a unified platform to configure, deploy and manage all services.

See https://microservices.io/ for more benefits of a microservice architecture.

Messaging

All microservices in Busby talk across a reliable messaging bus built on RabbitMQ. Message delivery and routing is handled by Busby to ensure speedy and reliable connectivity. Using RabbitMQ allows Busby to be agnostic to where it is deployed – in any cloud, on prem or any combination.

Busby uses a routing strategy for message handling, with individual microservices setting up direct connections with each other. This means that there is no messaging bottleneck, and one rogue service won’t bring down the whole messaging layer.

Redundancy and scaling

Enterprise level applications need to have resilience built in to them from the start. This both means making sure individual services are robust, and that they can be deployed in a redundant way. When Busby services are made you can decide the level of redundancy needed and change it as your requirements change. For services that require storing state Busby handles the synchronising of data stores. Using Busby it is possible to configure data redundancy across a WAN, this allows for a mixed environment with some services running on-prem and some in the cloud.

Scaling is also an important part of many media workflows – especially when there is bursty load. Busby allows you to autoscale services as the demand changes, this can also be managed pre-emptively if there is a known load just about to arrive, for example if new schedules are loaded into a transmission environment. As with every other part of Busby this scaling is agnostic to deployment, and can be done in cloud or across a local VM environment.

Deployment

Busby’s centralised configuration model enables changes to be made securely and quickly. Once changes are made they can be deployed to any number of configured deployment endpoints – these can be used for development, user acceptance testing and then production. All deployments have the same base configuration, with variable substitution used to handle differences in each environment. For example a staging system might not have the same level of redundancy or point to the same IP address as the production system.

When a single Busby system is not enough it is possible to join multiple systems together. This allows for multi-tenanting, in this model there is a central management Busby system, and then satellite Busby systems for each tenant. The central and satellite systems are connected via a secure tunnel, that exposes just those services that are needed.

Integration

Busby is all about integration, and as such it has connectors for many external systems. These integrations range from standard IT services such as HTTP, (S)FTP – to integrations into cutting edge broadcast services such as GV AMPP and openGear.

As well as orchestrating third party services, Busby can also be queried itself. Every aspect of Busby can be made available as a secure REST-based API.

Scheduling systems
Ingest devices
MAMs and PAMs
Automation and playout devices
Storage
Editors
Quality control
Transcoding
Routers and mixers
Standard IT equipment
AI – subtitling, markup

Workflow

Any time an orchestration requires an object to store some state a workflow is needed. Workflows are ubiquitous in Busby installations, from moving files through processing chains, to storing information about schedules, or even handling the spin-up and spin-down of machines for auto-scaling. Busby’s workflow management provides deep tooling for creating jobs, adding and editing metadata, composing hierarchies of jobs, querying jobs and much more. Workflows allow for a mix of manual and automated tasks, in both cases they can be prioritised to match the incoming requirements, say from a schedule or a calendar.

Once workflows have been created it is important that it is possible to visualise exactly what jobs are flowing through. Busby includes a Kanban inspired boards view that provides an at-a-glance overview, it also allows users to move jobs – as long as the workflow allows.

Resources – MAM and PAM

Many media enterprise applications require the storage and management of assets. Busby contains an integrated set of services to provide these features. The Busby asset management services allow for

  • Customisable hierarchies – for MAMs is often series -> season -> episode -> version but equally could be studio -> recording -> camera, or a unique hierarchy for your use case
  • Flexible metadata mapping and searching
  • All asset updates fully versioned
  • Component based assets for languages or other sub assets
  • Works alongside workflows to provide HSM, job prioritisation, archiving rules and much more
  • User interface, to allow custom searching and custom views
  • Sophisticated markup and editor integration
  • Frame accurate browse with support for multi-camera assets
  • API access for every feature

Control and UIs

Busby is an ideal control platform for a wide range of device control. Since it is an agnostic platform, it allows for mixing of different technologies in one interface. The Busby philosophy is to provide the operators with the controls they need to do their jobs, without those being hidden in 1000s of options that they use.

Alarms

Living with enterprise applications can be complicated. It is essential to know if something has gone wrong, where it has gone wrong and who should be alerted. This could be that the redundancy in your system has been compromised, or a third party device is not responding correctly. The Busby alarms subsystem provides a centralised approach to handling and managing alarms. This can be as simple to buzzers going off in a control room, to multi-level workflows being triggered if certain alarm conditions are met.

Scroll to Top