MSMQ Best Practices
Performance recommendations Avoid unnecessary database lookups before deciding if a message can be dropped. Prioritization should be given in code for dropping the message as quickly and efficiently as possible. If database lookups are required in deciding if a message can be dropped, can these be cached (with a refresh timeout)? If you are dropping messages, is there a better way to only receive the correct messages? If you are subscribed to an event processor publisher, does that publisher provide any kind of subscription filtering? Filtering can be achieved via database event subscription tables, (a list of subscribers with their input queues, and a list of events each input queue is interested in). Separate event types Publishers should translate event types into separate System.Types, with hierarchies to support grouping. For example, with some kind of delivery event data, these could be group interfaces such as ProofOfDeliveryGroup, ProofOfCollectionGroup, e...