article
Hexagonal Architecture (Ports and Adapters).
Cockburn, Alistair. "Hexagonal Architecture (Ports and Adapters)." https://alistair.cockburn.us/hexagonal-architecture/.
Related concepts4 concepts
Concept
Boundary
Boundary names where one kind of obligation ends and another begins—between roles, institutions, scales, or interpretive frames. It becomes important when coordination must clarify who can decide, who must answer, and what counts as shared ground. It helps preserve legible responsibility and evaluative contact, but can fail when boundaries harden into walls that block correction. In the post-interpretive authority context, a boundary is where external understanding ceases to govern legitimacy while power continues. It differs from coupling because a boundary marks a shift in shape, not the strength of attachment between action and consequence.
View Concept →
Concept
Coupling
Coupling names the strength of the link between what was decided and what later arrives. It becomes important when scale, abstraction, or delay lengthen the chain between decision and lived harm. It helps preserve learning and legitimacy, but can fail when dashboards stay green while frontline frustration grows. It differs from cohesion because coupling tracks action-to-effect attachment; cohesion tracks whether responsibility is clearly held. It differs from consequence-architecture because coupling describes the attachment; consequence-architecture describes intentional design of boundaries, feedback, and escalation.
View Concept →
Concept
Hexagonal Architecture
Hexagonal architecture is used in a software engineering sense. Hexagonal architecture (also called ports and adapters) is a boundary pattern that keeps domain logic insulated from external technologies by routing integration concerns through explicit interface ports and adapter implementations.
View Concept →
Concept
Interface
Interface is used in a software engineering sense. An interface is the defined boundary through which one component interacts with another (for example, function signatures, API endpoints, message schemas, or protocol expectations). A good interface makes dependencies explicit while minimizing exposure to internal implementation details.
View Concept →
