title: Multicasting, Messaging, ActiveMQ vs. MSMQ?
body: <p>I'm working on a messaging/notification system for our products.  Basic requirements are:</p>
  
  <ul>
  <li>Fire and forget</li>
  <li>Persistent set of messages, possibly updating, to stay there until the sender says to remove them</li>
  </ul>
  
  <p>The libraries will be written in C#.  Spring.NET just released a milestone build with lots of nice messaging abstraction, which is great - I plan on using it extensively.  My basic question comes down to the question of message brokers.  My architecture will look something like app -> message broker queue -> server app that listens, dispatches all messages to where they need to go, and handles the life cycle of those long-lived messages -> message broker queue or topic -> listening apps.</p>
  
  <p>Finally, the question:  Which message broker should I use?  I am biased towards <a href="http://activemq.apache.org" rel="noreferrer">ActiveMQ</a> - We used it on our last project and loved it.  I can't really think of a single strike against it, except that it's Java, and will require java to be installed on a server somewhere, and that might be a hard sell to some of the people that will be using this service.  The other option I've been looking at is MSMQ.  I am biased against it for some unknown reason, and it also doesn't seem to have great multicast support.</p>
  
  <p>Has anyone used MSMQ for something like this?  Any pros or cons, stuff that might sway the vote one way or the other?</p>
  
  <p>One last thing, we are using .NET 2.0.</p>