Distributed System Design
Distributed System Design
The 8 Fallacies of Distributed Systems
- The network is reliable.
- Qutomatically retry
- Queuing systems
- Latency is zero.
- bring back all the data you might need
- move the data closer to the clients (CDN)
- invert the flow of data (Pub/Sub)
- Bandwidth is infinite.
- The network is secure.
- Topology doesn’t change.
- DNS
- discovery service
- Service Bus
- There is one administrator.
- Everyone should be responsible for the release process
- Logging and monitoring
- Decoupling
- Isolate 3rd party dependencies
- Transport cost is zero.
- The cost of the networking infrastructure
- The cost of serialization/deserialization
- SOAP or XML is more expensive than JSON
- JSON is more expensive than binary protocols like Google’s Protocol Buffers
- The network is homogeneous.
- focus on standard protocols.
- choose standard formats in order to avoid vendor lock-in