Distributed systems follow an evolutionary development track. Seldom is a distributed system built from scratch with entirely new components. Rather, a construction, in situ, transforms the system from one configuration to another and evolves the system in an incremental fashion.
This evolutionary process of change is one of the distinguishing features of a distributed system. The more traditional approach is to completely replace a non-distributed system with a completely new service. Because of the massive amount of change associated with throwing out the old system and replacing it with a new system this approach is sometimes called a revolutionary approach.
Distributed systems use Evolution not REvolution.
There are two major ways in which evolution can happen in a distributed system. The first way is to keep the interface and the contract constant and replace a service with a different implementation of the service. The new implementation may have better resource usage characteristics thus providing a higher quality of service.
The second way is to keep the old interface and contract in place as well as the old service. A new service, with a backwards compatible interface and contract, is introduced. Over time, the older service is phased out and replaced with the newer service. There may be several different versions of a service active at any one time. Sometimes, older services are never removed.
The distributed system is malleable to change. Its very nature is constant change.
Change is the only constant.
A distributed system has many disparate services. One service can come and go, without interfering with another service. Even though two services may share many common resources, for the most part, they are independent. Of course, if one service relies on another service, then they are cooperative. If the service's partner is not available then the service will not be able to complete its task.