Advantages and disadvantages of licode


Hi all,
I was searched in the internet about licode advantages and disadvantages. But I am not able to get any document related to this. I was started working with licode. So, I need to know what are the advantages and disadvantages of licode. Please help me to get the advantages and disadvantages of licode.



After a year working with Licode it has all I need, as an SFU, except these:

  • Lack of support for WebRTC Data Channels
  • No solution for scaling one big room over multiple servers (load balancing)


My few cents for “No solution for scaling one big room over multiple servers (load balancing)”, mentioned by mkh.

As per link, given below, indicates some signs of similar support. As per link “A single Licode Room can be now easily distributed among an array of servers”. i.e room should be expandable across servers? It looks like some support exists but not sure about its usage or configuration, whether it works or not.


This is not true. Each Licode module (NUVE, CONTROLLER, AGENT) can be deployed on multiple server and in multiple numbers (except for nuve which is the head of the cloudhandler and must be only one).
each of these modules, when spawning, connects automatically at the cloudhandler, so it has a map of every piece in every location.

If you plan to horizontal scale the controller, you will need to create your own policy (default is in
licode/nuve/ch_policies), so you can assign the users you want in the same room (so, in the same controller).
I don’t ever needed to scale the controller atm, it only manages the sockets to the clients, so it can handle a lot of those.

Regarding the agents (which is the heavies process in the architecture, since it takes the various stream and forward each of these at all participants), you can spawn many of these in many machines.
so, your load is always balanced among the number of agent you spawn.
the only limitation comes if you want to make a broadcast. in this case, your stream is going to an agent, but this agent must be big enough to forward your stream to all participants in your room.

there was a project called erizo_tree to make one server to forward the stream to another server to balance a single big load of subscribers but it was never finished i think.

I wouldn’t say it’s not scalable, it’s the main advantage of choosing Licode in my opinion right now.