The 8 Fallacies of Connectivity, Storage and Execution
The fallacies of connectivity (au pair: routing) are:
- The network is reliable
- Latency is zero
- Bandwidth is infinite
- The network is secure
- Topology doesn’t change
- There is one administrator (single point of decision/information)
- Transport cost is zero
- The network is homogeneous
** The fallacies of connectivity are based on the fallacies of distributed computing, which are a set of assertions made by L. Peter Deutsch at Sun Microsystems describing false assumptions that programmers new to distributed applications invariably make.
Based on them, I pursued an analytical continuation of the false assumptions over networks in the other neighbouring fields of computing: storage and execution.
The fallacies of storage (au pair: allocation) are:
- Retrieval latency (get, read, fetch) latency-at-the-boundary is zero.
- Placement overhead (set, put, write) latency-at-the-boundary is zero.
- All retrieval are successful.
- All placements are successful.
- All retrievals are correct if successful.
- All placements are correct if successful.
- Capacity is infinite.
- Cost of storage-at-rest is zero.
The fallacies of execution (au pair: scheduling) are:
- Execution always completes (the expectation of halting).
- Execution always completes in an expected amount of time (plus a fixed constant).
- Execution always completes successfully (with exit code zero).
- Execution always completes in a known state.
- Execution always completes using only composition of available functions (weak/lazy code completeness) or using strictly and exclusively the available function (strong code completeness)
- Execution always completes with available data (weak/lazy data completeness).
- Execution always completes with available resources.
- Execution is never interrupted.