In a multi-tenant environment, synchronous processing requests from
clients associated with tenants are handled by middle tier servers, which
forward requests for asynchronous processing to queues associated with
organizational databases for each tenant directed by a locator service. A
group of independent asynchronous processing servers are used to perform
the asynchronous processing interacting with the databases in a
distributed manner. The allocation of the requests among the asynchronous
servers is managed by an exponential back off for organizations with no
waiting requests algorithm combined with a quota system based on historic
load for organizations that have requests. The independence of the
synchronous and asynchronous processing servers, as well as the
distributed interaction between the asynchronous processing servers and
the databases enables scalability of the system based on request types
and implementation of reliable recovery mechanisms.