liveBook · Manning

Rigidity

As explained in API Design Patterns

Rigidity is the property of an interface in which small changes can cause client failures or require substantial adaptation.

Rigidity is the property that makes interface changes difficult for clients to absorb. APIs are especially rigid because software depends on exact names and request shapes: renaming a field can immediately break previously written code. By contrast, human-facing interfaces such as GUIs usually tolerate changes that are inconvenient or unattractive without becoming unusable. section 2.2

Renaming an API field

If an API changes a field name, existing client code continues requesting the old name, which no longer exists on the server. The result is a client failure rather than a merely inconvenient interface change. section 2.2

Table 2.2 Difficulty of changing various interfaces (view table figure)

Flexibility

Audience

Example interface

Change difficulty

Flexible

Private

Internal monitoring console

Very easy

Flexible

Public

Facebook.com

Moderate

Rigid

Private

Internal photo storage API

Difficult

Rigid

Public

Public Facebook API

Very difficult

Compare how audience and interface flexibility affect change difficulty, from a private monitoring console to a public API. section 2.2

How API Design Patterns covers it

How deep it goes
Defines rigidity through API fragility and contrasts it with GUI resilience, without developing mitigation techniques.
Examples
Uses an API field rename, GUI button changes, and interfaces varying by audience and flexibility.
What it assumes
Assumes a basic understanding of APIs and interfaces while establishing why APIs are more fragile than human-facing interfaces.
What you can do after
Evaluate how interface changes may affect existing API clients and distinguish failures from merely inconvenient GUI changes.
How it connects
Connects rigidity with APIs, interfaces, flexibility, GUIs, software clients, and API design patterns.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of API Design Patterns. The section links point to the parts of the book it draws on.