Simplicity

A solution's distributed architecture is ideally designed to reduce complexity by separating functionality in such a manner that each unit of functionality is distinct and easily understood. The Simplicity design goal is based on the proper application of the separation of concerns.

Simplicity is a focus for REST because it impacts how services are defined, discovered, and eventually used (or reused) - and - further determines how easily services can be evolved independently.

The major contribution of REST to Simplicity is the Uniform Contract constraint. Each service has its own unique capabilities that are made accessible through a generic technical interface. This simplifies the cross-service technology architecture because services and consumers do not have to contend with individually-defined technical interfaces because the functionality encapsulated by services is abstracted from the underlying interface implementation.