I find it amusing that software engineers (or at least those I know) are very risk averse but paradoxically very optimistic about some topics. Complete trust in reliable network conditions is a belief that puzzles me often.

After frequent conversations about what is - and should - be considered “normal” reliability when passing messages between distributed systems I got bored with recalling (and repeating!) same examples.

So I designed cheat sheet to look at when planning for systems interactions.

Diagram showing cheatsheet of various Network States

Hope you find it useful and keep in mind that those conditions tend to multiply when number of exchanges increase.

Feel free to reach out with feedback.

Acknowledgements:

  • draw.io - great editor that only got better over time (but devs, if you're reading this, please make rendered PDF export easier)
  • Berkeley Mono Typeface - because everything is better with nice mono font :)