I am investigating solutions that have these requirements
- Pretty High volume (so forget about IS software clustering that involves RepoV2 which is a pain in the neck and does not go fast enough)
- No downtime allowed (so Hardware clustering is not enough, because it requires downtime during the failover process)
The project will integrate an external provider through a private Extranet to backend systems.
For various reasons, the internal back-ends systems will be integrated from independant ISs, all connected to each other through Broker.
The idea is to have a full redundant system (active-active):
- Two IS will listen to outside transactions
- Which will be published to a node of two brokers (if one is down, the transactions immediatetly goes to the other)
- On the backend side, for each system, there will be two ISs, connected to the two redundant brokers.
So if any of the components is down, there is another one that is not up. The probability that at each layer, both components are down is expected to be very low and acceptable.
The problem is:
- Between the external source and the two front end IS, it is possible to use Loadbalancer (because it will be HTTP integration), or Reverse Proxy thingy. So this is OK.
- But betweeen the front end and the brokers, we may have to use BrokerClusterPublisher API, but that is custom development and will bypass the IS dispatcher and all set of out-of-the-box services.
- Between Brokers and back-end ISs, there is no BrokerClusterSubscriber, and even more custom coding must be done to hardcode in each IS a custom java subscriber to each broker.
So obviously, this involves not-out-of-the-box customizations to reach the goal.
- I heard about conexus, a third-party-tool. Any ideas on this ?
- Any other suggestion ?