I am aware of this issue in the SagaManager. It was a fix to at least make the Asynchronous Saga processing be functionally correct. In Axon 2, there will be much more focus on scalability and high-performance. I have implemented a different strategy, using a Disruptor in the background, which should lead to better performance. Mostly because it uses batching of Events (it only saves the Saga state after processing a certain number of events) and is able to process Events concurrently in multiple threads. I still need to do some heavy performance testing on it, though.
Some quick wins that you can do is, is to use a single SagaManager instance for each Saga type. This will allow multiple Saga Manager to process Events concurrently.
What are the current performance figures that you’re looking at, at what would you like to be able to process?