Reputation: 2335
I have an applications that is required to listen to ADT and ORU messages. These message types could both be received on a single channel and post processed as appropriate. Alternatively, they could be received on separate queues and processed separately. I am using Camel/mina for the MLLP channels. What is the conventional approach to this type of application? I have been trying to consider the advantages and disadvantages of both approaches. I guess if they were separate, I could run separate applications that persist the data in a common data store. This may simplify development and be a more SOA approach - but that is the only advantage I can think of.
Upvotes: 0
Views: 1076
Reputation: 6436
From my experience most users prefer to separate different message types and different sender, i.e. one channel for each message type and sender/receiver combination. It has the advantage that a bug with one type can not influence the communication of another message type and different sender/receiver. Also it is easier to debug in case of a failure or erroneous message.
The disadvantage is that you have to monitor more channels. Of course you have to consider other things too. What if e.g. your accounting system throws silently away accounting messages for patients, it does not know, as the ADT message transfer has stopped?
Upvotes: 1
Reputation: 64
you could create a single common channel to receive ADT and ORU messages and further create two separate channels for ADT and ORU. Add filters to each of those two channels such that ADT
messages go to ADT channel and ORU messages go to ORU channel.
Upvotes: 1