I'm using NServiceBus with SQL Persistance and MSSQL Server.
I want to be sure that I don't get invalid data in my database in high concurrent scenarios.
From the docs I know that the SQL persister uses pessimistic concurrency since version 4.1.1. But I'm not sure how it works exactly because under "Starting Saga" and "Changes to Saga state" only optimistic concurrency is mentioned.
Does each saga instance only handle one message at a time and all the remaining messages are waiting in the queue to be handled by the saga?
Also is it possible to configure the concurrency to use optimistic concurrency instead of pessimistic concurrency for the SQL persister?