Hexagonal architecture or ports and adaptors as it is sometimes called, is a design pattern applied to software applications that attempts to separate core functionality and business rules, often called the domain model, from the interfaces used to interact with this code. These interfaces could be a web page or the command line used for user interaction; alternatively an interface could be to interact with other code or software like a REST API or a suite of automated tests. The important concept being that the core domain model is separated and therefore, with its integrity preserved, its value and longevity should benefit. Ian Cooper has written and talked at length about hexagonal architecture and visited Agile Yorkshire to take a deep dive into the topic and share his insight and experience.