Scaling Crossbar.io

The following discusses Crossbar.io scalability in terms of

  • scale-up: utilizing faster and more cores on a single machine
  • scale-out: utilizing multiple machines

and with regard to

  • scaling WAMP application components
  • scaling WAMP routing

Scaling Application Components

Crossbar.io can host WAMP application components (which connect to WAMP routers) and supports scale-up and scale-out.

Application components are run in worker processes, and hence multiple cores on a single machine can be utilized by starting multiple, functionally different components or multiple instances of the same component.

Application components can also be spread across multiple machines, all connecting to the same router. Doing so allows you to scale-out and utilize the resources of multiple machines.

Above features already work today with the current Crossbar.io release.

Scaling Routers

A Crossbar.io router worker process can manage multiple, independent realms and a single Crossbar.io node can run multiple router worker processes managing independent realms.

A single Crossbar.io router worker process already scales to 100-200k concurrently active connections.

You can utilize multiple cores on one machine for routing by starting multiple router worker processes, each managing independent realms.

The same works for scale-out, by running router workers on different machines, all managing different, independent realms.

Above features already work today with the current Crossbar.io release.

However, if you need to scale beyond 100-200k concurrently active connection on a single realm, this is not yet possible today.

For this, router workers will need to work together as a single logical router, managing the same realm. This feature is under development and currently scheduled for Q1/2016.