On the other hand, the use of message queues is on the increase I believe, especially where there are unlimited front end clients. The advantage is that whereas front ends are asynchronous including the immediate server processing, the message queue then synchronises the requests as a first step to controlling the threads optimally, whereas a file lock forces all processes to wait, often unnecessarily. Typically for mobile apps, a device server forwards requests via a message queue to a transaction manager and waits for a response before displaying back to the device. Although both are daemons, the device server performs asynchronous multiprocessing that needs no concurrency control, whereas the transaction manager relying on the synchronisation from the message queue, (that's all it is for) can choose where to control concurrency using up to say 16 threads, e.g. let the DBMS do its own locking while on the other hand preventing concurrent update to a storable. This improves the response time as compared with making all clients wait for a single lock.