Despite being pretty straightforward concepts to grasp, latency and throughput can become very complex subjects when we dive into them. Even at a shallow glance, when we are dealing with systems’ design, they can lead to hard situations, and knowing them well can be the difference between a good and a bad architectural decision. So, without any further delay, let’s get started. So… what’s latency again? Latency can be understood as a simple delay between two desired events. These events can be whatever you want to measure, even if it’s not related to computer science, e.g., the time you take to read this article after you’ve decided to do it . For the sake of contextualization, we’ll refer to latency in this article as being always related to network communications through the Internet. It’s worth mentioning that we’re affected by latency in everything we do through the Internet, but in some way, we’re used to it. Things get worse when we actually notice this latency. Two good examples