I have several .Net applications (not yet built) that need to send error messages, warnings, alerts, heartbeats, etc. to a database so they can be viewed in an alarm summary dashboard. This can't slow the apps down too much. It has to be fast. I want a way to prioritize certain messages so they are displayed right away in the dashboard.
I am thinking that MSMQ is the way to go because there might be a ton of messages coming in and you can make several queues.
Would it be faster to make my apps send the messages directly to MSMQ? Or, would it be faster to send them to a WCF service with NetMSMQBinding?
If I send the messages directly to MSMQ then the apps are tightly coupled to MSMQ and if I want to scrap MSMQ later and use something else I will be screwed. I don't want to have to make changes to the apps once they are in the wild every time the alarm summary app changes.
If I send the messages to a WCF service with the NetMSMQBinding then I still tightly-couple my apps to MSMQ, right?
This alarm summary application could be huge, effecting every app in the entire system and it has to be done correctly.