Frequently Asked Questions
Hexagonal Architecture is a software composition pattern that organises an application’s components around the core business logic, encapsulating it within the innermost layer. In Hexagonal Architecture, the external interactions are abstracted through ports and adapters, promoting modularity, flexibility, and maintainability.
You may easily change databases, UI frameworks, or external systems without impacting core logic.The isolated core logic simplifies unit testing and facilitates clear integration testing with adapters.Decoupled components with clear responsibilities make code easier to understand, modify, and extend.Provides independent scaling of different components based on specific needs and demands.
Consider using Hexagonal Architecture if:Your project prioritises long-term maintainability and adaptability.Testability is a major concern for your application.Your project involves multiple databases, UI frameworks, or external systems.You anticipate future scaling requirements.
Hexagonal Architecture might not be ideal for:Simple, small projects with limited external dependencies.Teams lack experience with this architectural pattern.Projects with tight time constraints, as initial setup requires some investment.
Companies like Netflix, Uber, and Shopify utilise principles similar to Hexagonal Architecture to build flexible and scalable platforms.
Hexagonal Architecture focuses solely on organising the internal structure of a single application. The emphasis is on modularity and separation of concerns within the application’s components.Microservices is about breaking down an application into smaller, independent services. The idea behind microservices is to decouple a large application into smaller sub-services that could interact with one another using APIs.
The term “Hexagonal” refers to the shape of the architecture having six sides, which resembles a hexagon with the core business logic at its centre.This design emphasises the idea of surrounding the core logic with layers of ports and adapters, creating a flexible and adaptable structure for the application.
Have questions or feedback?
Get in touch with us and we‘l get back to you and help as soon as we can!