Evolvability (aka. changeability, evolutionary architecture)
Evolvability is a quality attribute of a system. It refers to the ability to make changes to the design of a system without breaking existing functionality. The ultimate in evolvability is [evolutionary architecture], where the fundamental structure of the system, its data structures and the communication patterns between its components, can evolve over time.
The quality of evolvability is more important in the context of distributed software than it is in monolithic software. Distributed software is inherently complex (it has a high degree of essential complexity), and therefore the ability to evolve the system over time becomes a key design constraint.
Event-driven architecture is widely recognized as offering a high degree of evolvability in distributed software. The loosely coupled nature of event-driven systems means that you can change one part of the system without having to change other parts, and the interfaces between components (in the form of event messages) tend to be more stable than messages and direct method calls.