About Blocking Case
There are blocking cases when two requests to the same resource conflict, blocking one from processing the other. The most common reason for this is when working with shared resources such as databases or file systems. It is possible, for instance, to implement a read/write lock that prevents multiple processes from concurrently writing to a single region.
Queues are the most effective solution for handling Blocking Cases. In queues, each process is provided with an opportunity to consume a resource before moving on to the next item. Consequently, no process has to wait for a resource while another holds it. Queuing systems, such as MongoDB, and database systems like it use this technique commonly.