interfacecentric
Interfacecentric is a software engineering approach that treats interfaces between components as the primary design artifact. In an interfacecentric design, explicit interfaces, contracts, and API surfaces are defined and stabilized early, and implementations are chosen or evolved to satisfy those interfaces. The goal is to maximize decoupling, substitutability, and reuse by making components depend on well-defined abstractions rather than concrete implementations.
Key ideas include contract-first design, explicit interface definitions, versioning and compatibility strategies, and contract testing. Interfaces
This approach is common in API-driven development, microservices, plugin architectures, and component-based systems. It supports parallel
Benefits include improved modularity, resilience to change, and clearer responsibility. Potential drawbacks are upfront design costs,
Related concepts include API-first design, contract testing, consumer-driven contracts, and the dependency inversion principle. While sometimes