The requirements for a technology architecture are bound to change over time. Modifiability represents the ease at which changes can be made to an architecture.
Modifiability in a REST-style architecture is further broken down into the following areas:
- evolvability - the ability to refactor and redeploy a service, consumer, or middleware component without impacting other parts of the architecture (even when the upgrade occurs while applications are running)
- extensibility - the ability to add functionality to the architecture (even while solutions are running)
- customizability - the ability to temporarily modify parts of a solution to perform special types of tasks
- configurability - the ability to permanently modify parts of an architecture
- reusability - the ability to add new solutions to an architecture that reuse existing services, middleware, methods, and media types, without modification
Modifiability is particularly important for larger distributed architectures where it is not possible to redeploy the entire environment every time an architectural improvement is made.