Contents
Why do architects use hexagons?
The hexagonal architecture, or ports and adapters architecture, is an architectural pattern used in software design. It aims at creating loosely coupled application components that can be easily connected to their software environment by means of ports and adapters.
Is DDD an architecture?
Modern Software Architecture with Domain Driven Design (DDD). Introduction on DDD and its relation to Microservices, Reactive Systems, BPM, Agile, CQRS and Event Sourcing. Welcome to the first issue on Modern Software Architecture.
Should I use domain driven design?
Domain-driven design is perfect for applications that have complex business logic. However, it might not be the best solution for applications with minor domain complexity but high technical complexity. Applications with great technical complexity can be very challenging for business-oriented domain experts.
Why are hexagons so common in nature?
Hexagons, in particular, are often seen in nature: bee hives are the common example, but definitely not the only. A hexagon is the shape that best fills a plane with equal size units and leaves no wasted space. Hexagonal packing also minimizes the perimeter for a given area because of its 120-degree angles.
Is Domain Driven Design microservices?
Microservices have a symbiotic relationship with domain-driven design (DDD)—a design approach where the business domain is carefully modeled in software and evolved over time, independently of the plumbing that makes the system work.
Why is domain-driven design important?
The purpose of DDD is to: Provide principles & patterns to solve difficult problems. Base complex designs on a model of the domain. Initiate a creative collaboration between technical and domain experts to iteratively refine a conceptual model that addresses domain problems.
Why is the hexagonal architecture good for business?
No framework used in the Hexagon means the business domain can be reused regardless the change of the technical stack. It will as well increase the testability of your domain since you no longer mix it with integration issues. And at the end, you’ll do real functional tests thanks to this constraint of the Hexagonal Architecture.
How does persistence work in a hexagonal architecture?
In a layered architecture, the Business Object or the service usually creates the DAOs. In the Hexagonal Architecture, the domain only handles domain objects. Consequently, the persistence is in charge to translate the domain objects into any “DAOs” to be persisted. This is what we call an adaptation.
Do you use DTOs in domain driven hexagon?
Another thing that can be seen in some projects is local DTOs. Some people prefer never to use domain objects (like entities) outside of core (in controllers, for example), and are using DTOs instead. This project doesn’t use this technique to avoid extra interfaces and data mapping.
Why did Alistair Cockburn create the hexagonal architecture?
Because there was no clean separation between the business logic and the technical code. The Hexagonal Architecture created by Alistair Cockburn ensures the re-usability of the business logic by making it technical-agnostic. So, changing the stack will have no impact on the domain code.