I apologies in advance for the vast number of buzzword in this post…
Firstly Crossbar.io and autobahn look awesome and I can see great potential. So thank you for all the great work so far.
I am looking at how one would compose a large application from independent microservices.
To maintain flexibility I would like to be able to manage those components/microservices separately. i.e. start/stop and release new versions of a component without having to bring the whole application down.
With this in mind would the following work:
A single crossbar router instance running without any additional components (except possibly auth).
Then individual components written with Autobahn would connect to that router from arbitrary locations.
So for example I may use a cluster of CoreOS machines. Each component (including the router itself) would be packaged up in a docker container. The cluster would run one copy of Crossbar (until multi-node is released). Then each component would be set to run on a random machine in the cluster, it would then connect up to the instance of crossbar.
- Can anyone see any big gotchas with this approach?
- Is this a use case that the dev team envisioned when building crossbar/autobahn?
- As a slight side question - if an event is published, is it lost if the router is restarted prior to delivery?