Skip to content

Instantly share code, notes, and snippets.

@alicarbonteq
Last active October 12, 2021 09:04
Show Gist options
  • Save alicarbonteq/ba4b1d000200aada2f78fe5b112cebb7 to your computer and use it in GitHub Desktop.
Save alicarbonteq/ba4b1d000200aada2f78fe5b112cebb7 to your computer and use it in GitHub Desktop.
Fallacies of Distributed Systems

Fallacies of Distributed Systems

Understanding these misconceptions about distributed systems like microservices, SOA, and others will help you build better, more flexible software architecture.

Are you working on a distributed system? Microservices, Web APIs, SOA, web server, application server, database server, cache server, load balancer - if these describe components in your system's design, then the answer is yes. Distributed systems are comprised of many computers that coordinate to achieve a common goal.

More than 20 years ago Peter Deutsch and James Gosling defined the 8 fallacies of distributed computing. These are false assumptions that many developers make about distributed systems. These are usually proven wrong in the long run, leading to hard to fix bugs.

The 8 fallacies are:

  • The network is reliable.
  • Latency is zero.
  • Bandwidth is infinite.
  • The network is secure.
  • Topology doesn't change.
  • There is one administrator.
  • Transport cost is zero.
  • The network is homogeneous.

Let's go through each fallacy, discussing the problem and potential solutions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment