Hello everyone,
I am presently designing a message queue system that will be used by various applications and am having a difficult time trying to decide whether to use WCF to provide the services or use a shared class library (DLL) and deploy the DLL with the clients.
For some additional information:
• The queue is stored in a SQL database.
• We expect to have approximately 3-7 different applications/clients using this message queue system.
• The clients/applications may or may not run all on one machine.
• We do not expect a heavy load of messages being queued on a daily basis (approx 1000-10000 per day (gross estimates btw))
• Somewhat “mission critical” – several clients/applications cannot do its job if this service is unavailable.
• Everything operates within the corporate network – no access to Internet required.
I have given some though to the pros and cons for each decision:
WCF Service
Pros:
• Can update the logic in the Queue system without having to update the clients
• Room for scalability – but most likely not going to be an issue.
Cons:
• More difficult to diagnose/debug
• More effort required when deploying
• Queue System unavailable if the service is down (unless we cluster/farm)
Shared Class Library (DLL)
Pros:
• Easier to debug
• Easier development efforts
• Only have to ensure that the DB is available – no dependence on another service/machine.
Cons:
• Deployment headaches when we make updates to the DLL – we may forget to update all the applications that depend on the DLL.
If anyone can provide more arguments for a solution – that would be helpful! If you have an opinion to what you believe is the best direction, please do tell! I’ll appreciate any input that will help make me a decision.
Thanks for your time,
Adrian