For designing distributed systems, we make seven assumptions and all of them are wrong.
The network is reliable: there may be problem in computers or communication links and we cannot assume that the network is reliable.
The second assumption is that the latency is zero. Access time is assumed to be zero whereas it is some finite value. Similarly, we cannot assume a very high throughput.
The next is that the bandwidth is infinite: communication medium has only a finite bandwidth and while designing distributed systems, this assumption should not be made.
Network is secure: No network is secure. We have to be very careful towards security while developing applications such as e-commerce.
We also assume that the topology does not change: Topology keeps changing, we may add a node, delete a node, etc. and hence the distributed system should take care of the changes in the topology of the network.
There is one administrator: The configurations may change and because of many administrators involved in the management of the network, the changes are not known universally. Configuration change management is an important issue.
Transport cost is zero: The cost for transporting of data is an important parameter while designing the distributed system architecture.