portdriven
Portdriven is a software design philosophy that centers system architecture on explicit interfaces, or ports, through which external actors and subsystems interact with the core domain. In a portdriven design, the business logic depends on abstract contracts rather than on concrete implementations, allowing interaction to occur through well-defined channels.
Ports define the allowed operations and data flows for each direction of interaction (input, output, or both).
Historically it shares a lineage with hexagonal and clean architecture, where the core domain remains isolated
Implementation typically involves mapping use cases to ports, validating them as stable contracts, and creating adapters
Example: in an e-commerce order service, ports might include placeOrder, cancelOrder, and notifyShipment. Adapters implement these
Advantages include decoupled layers, simplified testing, and easier technology upgrades. Critics warn that portdriven can introduce
See also: hexagonal architecture, clean architecture, ports and adapters, interface segregation.