Easily moves between environments and technologies on demand, with little to no hard dependencies
- The application must be loosely coupled to the environment and architecture in which it is deployed.
- It must be nimble enough to operate in a variety of architectures and environments.
- Each discrete component and/or service must be able to move without detriment to the application.
- As demand and usage of the application changes, and as technology advances, there may be a need to deploy the application to an environment that utilizes different technologies. This is especially true for the data access layer of the application.