You state there are dirty reads in your business logic - which sounds strange. But as you have tagged your question "SQL" then make sure you have the correct isolation level set. Committed reads is the default but you can ensure it is on with
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
at the head of your query.
By the way, SQL is normally very good at handling concurrency so the problem is most likely to be in the way you have implemented your API.
You could consider queuing the requests into your API - this would be invisible to your callers, but may result in a performance hit (unless you have many listeners in place - back to square 1) - have a look at
Amazon Web Services Simple Queue Service Using the Java 2 Software Development Kit[
^] or
Message Queue[
^]. IBM also have a good offering but we're starting to talk some serious money now.
As to your comment about throttling slowing things down - that is what it is meant to do! However, your requirement
Quote:
The request should be processed sequentially,
will have the same effect