July 2019
Intermediate to advanced
502 pages
14h
English
One of the worst routine things that can happen on a system is a timeout. A timeout means that the user will not get an answer on time. A timeout means that you did a lot of work that is now wasted. You may have retry logic and the user will eventually get their answer, but performance will take a hit. When your system and all its components are highly available (as well as not overloaded), you can minimize the occurrence of timeouts. If your system is very redundant, you can even send the same request multiple times to different backends and, whenever one of them responds, you have the answer.
On the other hand, a highly available and redundant system sometimes requires syncing with all the shards/backends ...