I can only bookmark this article in one folder :(.
Even if the post can be compressed in a few paragraphs, do this because we say so, it was a cool piece of written lessons I wanted to hear. The drawings improved the experience by 100%.
I think many devs will benefit from understanding all the steps behind each decision and result you guys reached, and apply it to other problems too.
As for the loading balancer issue, couldn't the service expose it's queue length to the discovery service? so you can always choose the worker with the smallest queue? I recently implemented the "worker thread pool" algorithm and it sounds like the perfect solution.
Thanks! Glad you enjoyed the drawings! It takes a lot longer to illustrate, but it's just so much more fun.
I'm not a Consul expert (Consul is the service discovery tool we were using), but I'm not aware of any facility that it provides to track instance queue lengths. Fabio (the load balancer we used) has great Consul integration, but also does not provide this capability. It could certainly be done, though. Tyler McMullen's awesome talk, "Load Balancing Is Impossible", discusses this approach briefly, in case you're interested in diving deeper (25:31): infoq.com/presentations/load-balan...
I can only bookmark this article in one folder :(.
Even if the post can be compressed in a few paragraphs, do this because we say so, it was a cool piece of written lessons I wanted to hear. The drawings improved the experience by 100%.
I think many devs will benefit from understanding all the steps behind each decision and result you guys reached, and apply it to other problems too.
As for the loading balancer issue, couldn't the service expose it's queue length to the discovery service? so you can always choose the worker with the smallest queue? I recently implemented the "worker thread pool" algorithm and it sounds like the perfect solution.
Thanks! Glad you enjoyed the drawings! It takes a lot longer to illustrate, but it's just so much more fun.
I'm not a Consul expert (Consul is the service discovery tool we were using), but I'm not aware of any facility that it provides to track instance queue lengths. Fabio (the load balancer we used) has great Consul integration, but also does not provide this capability. It could certainly be done, though. Tyler McMullen's awesome talk, "Load Balancing Is Impossible", discusses this approach briefly, in case you're interested in diving deeper (25:31): infoq.com/presentations/load-balan...
I noticed the load balancer video, it increased my knowledge of load balancing with 99.9%.
I didn't considered the problem if you have multiple dispatchers, indeed is worst than random :).