
Ports are staying consistent but we still want to be able to plug multiple applications to them when needed. They are interfaces that the inner components interact with without knowing whats being plugged into them. Ports stay consistent for the inner application no matter what happens outside them. Ports are what our core application interacts with. Those concerns are to be handled at the boundary of our hexagon. The intent is to make the core of our application immune to changes in the communication with other layers.


They each serve a specific purpose and provide data/services to the application. These are services which support the business logic. The responsibilities can vary from one use case to another. Based on the request, it runs some custom logic, gets the resources needed to fulfil the request and answers back in an agreed upon response format.īelow is a small word cloud of the responsibilities of a business logic layer. It's objective is to cater to the requests of user interfaces. They will all get their resources from the Business logic layer. There can be many user interfaces to a backend - mobile apps, web apps, desktop softwares, etc. It originated around the beginning of the shift to domain-driven designs and formed a basis of further advancements in the field of software design.Ī hexagonal architecture is divided into three parts and defines the strict roles that these parts play within the application. Hexagonal architecture is another advancement in loosely coupled architectures. There is an emphasis on breaking applications into components which can be switched, replaced or updated without affecting the dependent components.


In the evolution of software architecture, loose coupling has been at the centre.
