» 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.»
Related: