mirror of
				https://github.com/donnemartin/system-design-primer.git
				synced 2025-11-04 10:12:32 +03:00 
			
		
		
		
	Add Async disadvantages and further reading sections
This commit is contained in:
		
							
								
								
									
										11
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								README.md
									
									
									
									
									
								
							@@ -1432,3 +1432,14 @@ Tasks queues receive tasks and their related data, runs them, then delivers thei
 | 
			
		||||
### Back pressure
 | 
			
		||||
 | 
			
		||||
If queues start to grow significantly, the queue size can become larger than memory, resulting in cache misses, disk reads, and even slower performance.  [Back pressure](http://mechanical-sympathy.blogspot.com/2012/05/apply-back-pressure-when-overloaded.html) can help by limiting the queue size, thereby maintaining a high throughput rate and good response times for jobs already in the queue.  Once the queue fills up, clients get a server busy or HTTP 503 status code to try again later.  Clients can retry the request at a later time, perhaps with [exponential backoff](https://en.wikipedia.org/wiki/Exponential_backoff).
 | 
			
		||||
 | 
			
		||||
### Disadvantage(s): asynchronism
 | 
			
		||||
 | 
			
		||||
* Use cases such as inexpensive calculations and realtime workflows might be better suited for synchronous operations, as introducing queues can add delays and complexity.
 | 
			
		||||
 | 
			
		||||
### Source(s) and further reading
 | 
			
		||||
 | 
			
		||||
* [It's all a numbers game](https://www.youtube.com/watch?v=1KRYH75wgy4)
 | 
			
		||||
* [Applying back pressure when overloaded](http://mechanical-sympathy.blogspot.com/2012/05/apply-back-pressure-when-overloaded.html)
 | 
			
		||||
* [Little's law](https://en.wikipedia.org/wiki/Little%27s_law)
 | 
			
		||||
* [What is the difference between a message queue and a task queue?](https://www.quora.com/What-is-the-difference-between-a-message-queue-and-a-task-queue-Why-would-a-task-queue-require-a-message-broker-like-RabbitMQ-Redis-Celery-or-IronMQ-to-function)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user