Integration discontinuity

» Glossary » Integration discontinuity

«An API has an Integration Discontinuity when the effort to integrate a new feature is higher than the benefit gained by it.»

– Designing and Evaluating Reusable Components, Casey Muratori

Tradeoffs of API design

Muratori defines a set of tradeoffs when designing APIs that would help us to minimize the discontinuities. These tradeoffs vary along the lifecycle of the product:

Tradeoff Rule High Low
Granularity A or BC Flexibility Simplicity
Redundancy A or B Convenience Orthogonality
Coupling A implies B The less coupling, the better
Retention A mirrors B Synchronization Automation
Flow control A invokes B The most control, the better

«Optimizing the five characteristics leads to an API which is gradually tiered, highly decoupled, has no retention at its most granular tier and always lets the game dictate the flow of control.»