Xbus 3.0.0

After 2.5 years of rewrite, tests, deployments in production and hard work, we are very pleased to say that Xbus 3.0.0 is ready!


Xbus
banner

What was done?

A lot! Back in summer 2016, Xbus 2, written in python with a hand-crafted protocol over zero-mq, was showing limits and the need to rethink the whole product was getting very strong.

This is when we started working on a complete rewrite of Xbus with the following goals/ideas/constraints:

• Base the protocol on NATS, for easier distribution and setup.

Drop Python, that we still love, in favor of Go. The reasons are multiple and not the subject of this post, but suffice to say that we would benefit from a compiled language, and that NATS being coded in Go too, it made the integration easy at a low level since we plug into the authentication layer.

• Provide strong security guaranties, for which we found a simple and elegant solution: https://orus.io/post/nats-xbus-and-tls/

• Use a micro-services architecture


Along the way, some strong features emerged:

Graph-based pipeline definition

Protobuf-based API specifications, thanks to NRPC to which we heavily contributed.

A HTTP gateway for simple actors


Can I start using it?

YES! We waited a long time before releasing a major version to make sure anybody could just start using it.

We already have instances of Xbus 3 running in production, and we are pretty confident that it is doing the job properly.


What’s next?

The roadmap is always moving, but the following subjects have all our attention:

Native replies: Currently an emitter cannot wait for a reply to its message. We can workaround this by adding a consumer and configure more complex pipelines, but this is definitely a feature we want to provide out of the box

A decent GUI: we already have a Elm-based POC of a Xbus GUI. We aim to provide many features in this application:

  • • configuration of the accounts, actors, pipelines…
  • • monitoring
  • • easy error handling
  • • manually post data to replace FTP drops
  • • SSO for corporate use
  • • …

Performance improvements: Until we had a great confidence in Xbus safety, performances were not a primary concern, although the architecture was always conceived with them in mind. We can now work on improving the processing capabilities of Xbus.