...my 2 cent worth: 1\ Messages can be processed transactionally (similarly to ACID database transactions, minus the "I": no isolation is guaranteed, but no isolation is required; e.g. think about fast & paralled message consumption by independedent consumer applications under independent units of work with minimalistic locking)
3\ In a well tuned system queues tend to be empty (very deep queues during workload peaks are of course "normal"), while in a well tuned system database tables tend to be full, i.e. think of queues as a transient store, not as a long term system of record. 4\ queues are fast, very fast <http://activemq.apache.org/performance.html> Cheers, F. PS: ...interestingly the queues vs databases thing was discussed by late Jim Gray (http://en.wikipedia.org/wiki/Jim_Gray_(computer_scientist)) back in 1995 (!) in his seminal paper "Queues are databases" ( http://research.microsoft.com/apps/pubs/default.aspx?id=69641), which stirred up a big debate in the industry.