We will have a source system broadcasting messages over a JMS compliant pub/sub infrastructure. For the majority of messages published the subscribers will be GUI applications updating a screen with the data in the message.
One of the subscribers, however, will be a translation service. For certain messages published the translation service will translate the message into a different format and publish it onto a secondary messaging infrastructure owned by a different part of the enterprise.
How can I scale out my translation service and provide, ideally, active-active fault tolerance? Some notes:
- The messages need to be published onto the secondary messaging infrastructure in order.
- The messages must only be published once onto the secondary messaging infrastructure.
Basically, how do I make sure that only 1 translation service subscriber responds to the messages? Do I need to switch to a queue based system (but my GUIs will still need pub/sub semantics)?
Note that the translation service will bet a .Net 3.5 application hosted in Windows Server 2003. We have F5 Network's BigIP LTM/GTMs available.
Any more details required please ask/comment.
Thanks in advance.