
Originally Posted by
Mark Fisher
There is one important thing to consider however: transactions.
If you don't need them (i.e. it's ok to lose messages... typical eventing rather than important-data-to-be-processed), then it's fine to use the async channel and hand off to another thread. However, if you are sending AMQP Messages that contain data that must be processed (account debit/credit, stock trade request, etc.), you probably want to have transaction support. In that case, you would be better off with the concurrent-consumers on the listener container since those consumer threads are actually able to participate in the transaction and commit or rollback based on downstream success or failure, respectively.
Does that make sense?... and if so, which type of behavior best describes your use-case?