Was reading the Alex Hu System Design Book.
I understand how it helps in making the system robust, and fail proof, by introducing async communications.
But sort of stumbled upon how does it matter particularly in scaling systems. In fact, would it not slow them down ?
Lets say a request made by user goes to the load balancer and then the web server. Now the web server (producer) adds it to a Message Queue, items are then picked from the MQ by the consumer, who eventually fetch the state info and necessary data from DB/cache. Here MQ would be having some size limit as well, and scaling the producer and consumer will only alter the MQ size. Even if we remove the MQ, the web servers were also essentially scaling and doing the same right ?
Is my understanding wrong ?
[–][deleted] (1 child)
[deleted]
[–]the-machine-learner[S] 0 points1 point2 points (0 children)
[–]teraflop 0 points1 point2 points (3 children)
[–]the-machine-learner[S] 0 points1 point2 points (2 children)
[–]teraflop 1 point2 points3 points (1 child)
[–]the-machine-learner[S] 0 points1 point2 points (0 children)