In a previous chapter, the N-Tiered architecture was discussed, where a software application is divided up into layers. N-Tiered applications are typically separated in successive layers, like the layers of a cake, from A to B to C and so on. There is a danger in defining an application in this way, as sometimes pieces of functionality don't cleanly fall into one layer. As long as the layers remain loosely coupled and functionality does not cross the boundaries, your application should remain well-structured and organized.
The hexagonal architecture was first described by Alistair Cockburn in the 2000s. Hexagonal architecture has also been referred to as ports and adapters, in which ports are abstractions and adapters are the implementations. This approach to designing applications changes the concept of layers to one of internal and external pieces to the application.
Some may argue that the hexagonal architecture and N-Tiered architecture...