Interface
A defined boundary for interaction: the inputs, outputs, and rules a component exposes so others can use it without knowing its internals.
Definition
An interface is a defined boundary for interaction: the inputs, outputs, and rules a thing exposes so other things can use it without needing to know how it works internally.
Examples across the stack
- Programming: a function signature, a module API, a trait/protocol, a REST endpoint contract.
- Operating systems: the filesystem API (paths, permissions), sockets, process creation, and system calls.
- Hardware: device registers, instruction sets, bus protocols.
Why interfaces matter
Interfaces are what make abstraction possible: they let components change internally while keeping behavior consistent at the boundary.
They also define failure modes: when an interface is used incorrectly or under new constraints, the boundary is where errors show up (bad inputs, permission denied, timeouts, etc.).