Allow an application to equally be driven by users, programs, automated test or batch scripts, and to be developed and tested in isolation from its eventual run-time devices and databases.
Class diagram
Applicability
Use Hexagonal Architecture pattern when
When the application needs to be independent of any frameworks
When it is important that the application highly maintainable and fully testable