Derek Lawless

There is always sunshine / Far above the grey sky

The fallacies of distributed computing are a set of assertions describing false assumptions made about distributed systems.

L. Peter Deutsch drafted the first 7 fallacies in 1994, with the 8th added by James Gosling in 1997.

The 8 fallacies are:

  1. The network is reliable
  2. Latency is zero
  3. Bandwidth is infinite
  4. The network is secure
  5. Topology doesn’t change
  6. There is one administrator
  7. Transport cost is zero
  8. The network is homogeneous

3. Bandwidth is infinite

The problem

Bandwidth is the capacity of a network to transmit data over a period of time. While bandwidth has increased significantly over the past few decades, it is not infinite.

Users may not be fortunate enough to enjoy reliable, high-bandwidth network connections or may experience highly-variable connectivity at times e.g. when using mobile networks. Further, as bandwidth-in-general has increased, so has the requirement to support large volumes of data such as audio and video streams.

Solutions

Although latency is ultimately a physics problem, bandwidth issues can be ameliorated by throwing more capacity at the problem. However, this can be a financially expensive approach with an upper-bound and may not be applicable to every usage scenario.

In terms of system design, architectural approaches such as CQRS coupled with a clear understanding of user journeys can assist when optimising data payloads and in establishing the resultant bandwidth requirements.

Recall that one solution to the Latency is zero fallacy is to transmit more data upfront, thus reducing the number of network requests required. This introduces a potential tension with solutions for fallacy 3 given that bandwidth reductions will require less data be sent over a network. Finding the correct balance between the two requires an appropriate level of demand modelling and knowledge of how the system will be used.

© 2022 Derek Lawless. Built with Gatsby