Reliability / HA
Because it uses JMS queues internally and consumes messages
transactionally, RSB exhibits a reliable behavior as far as guaranteed
job processing and result delivery (up to the HTTP, email or file system
interaction) are concerned.
In order to roll-out a highly available deployment, several instances
of RSB running in parallel must be deployed. The following must be
considered:
- RSB polls email resources: refer to this discussion for more information.
- The REST API supports network level load balancing natively: nothing
particular must be done to run RSB behind an HTTP load balancer. The
job URIs generated by the REST API are built by using the host name of
the incoming request, which guarantees that these URIs are respectful
of any network-level indirection mechanism that could exist in front
of RSB.
- Each RSB node embeds a JMS provider: if an RSB node is down, all the
jobs pending processing or the results pending delivery will not be
accessible until the node is restarted. To be truly highly-available,
the embedded JMS providers should be replaced with an external
highly-available JMS provider to which all RSB nodes would connect. If
this is pursued, keep in mind the following drawback (described here):
RSB uses the local file system for handling multi-file jobs.