Home > REST Constraints > Code-on-Demand

Code-on-Demand

Short Definition

Service consumers support the execution of deferred service logic.

Long Definition

Service consumer architectures include an execution environment for logic provided by a service. This deferred logic can be used to extend the functionality of the consumer, or to temporarily specialize it for a particular purpose.

Application

Service consumers are designed to process logic offloaded to them by services at runtime.

Services make explicit decisions as to whether they will execute logic themselves or defer the execution of that logic to their consumers.

Impacts
  • Features can be dynamically added to consumers without the need for them to be formally upgraded.
  • Services are able to avoid becoming execution bottlenecks by deferring logic to consumers rather than executing the logic themselves.
  • The required execution environments for consumers to process service logic can introduce security vulnerabilities.
Relationship to REST

n/a

Related REST Goals

Modifiability, Scalability, Performance, Visibility (negative), Simplicity (negative)