What is Callaba streaming and video API

Callaba Engine is a streaming & video API-first platform that you can use to launch your solution. Interaction with the engine is carried out through the REST API.


Callaba Architecture

Callaba Engine is developed as a set of modules independent from each other, where the Pipeline pattern is applied. This means any module can be called in any order. For example, first we launch the stream setting up module and make it listen to a specific port, next we launch the module that performs the transcoding of the stream, and finally the playback module.


This can be compared to booting up a computer, where first the low-level software is loaded and it gets the information from the hard disk drive, next the kernel is loaded, then the operating system and services, including the graphical shell, and finally you see the screen. All this can be fit into the Pipeline concept.

Any of these modules can be called sequentially, linking one stream to several different processes indefinitely, as long as the server resources keep up.


Routing between multiple Callaba Engine instances

Callaba Engine supports stream routing and clustering out of the box. You can easily organize delivery from one instance to several others using the built-in routing mechanism.


What technologies does Callaba Engine use?

Callaba Engine is a collection of low-level programs written in C and C++, python, rust and golang. Database used is MongoDB.

Callaba Engine uses docker as well as docker-compose and is made of containers. These containers can exist on the same server and can also be distributed among server users via clustering.

Callaba Engine includes:

  • MongoDB (C++, Python, Javascript)
  • Queue application (Rust). Queue is serving process automation and system processes
  • Web application (Javascript)
  • Web server application (C)
  • Backend + Restful API Application (C, C++, Javascript)
  • Application handling the ICE protocol (Golang)
  • Application handling the WebRTC, RTP (C++)
  • Application handling the SRT streams (C++)
  • Application handling RTMP streams (C)

As a basis for the development of modules, features and standards for video broadcast protocols are used. Callaba Engine uses built-in failover mechanism, in case of dangers, the construction service resumes work automatically.


Callaba Engine uses the network: host virtualization mode, which is only available on Linux operating systems. This limitation is due to the different network stack of operating systems. Therefore, we recommend using Linux.

If you need something special, you can contact the technical support department:

[email protected]