Le pattern d'architecture hexagonale, également connu sous le nom de "Ports and Adapters", est un modèle architectural qui vise à rendre les systèmes logiciels indépendants des détails techniques et faciliter les tests automatisés. Il met l'accent sur la séparation des préoccupations et l'organisation des différentes couches autour du domaine métier.
placer le domaine métier au centre du système, entouré de différentes couches d'adaptateurs. Le domaine métier est représenté par un noyau (ou "hexagone") qui encapsule la logique métier, les entités, les règles et les invariants. Les adaptateurs servent à connecter le domaine aux interfaces utilisateur, aux bases de données, aux services externes, etc.
L'architecture hexagonale permet de séparer clairement les responsabilités et les préoccupations. Le domaine métier est isolé des détails techniques, ce qui facilite la compréhension, la maintenance et l'évolution du système.
En plaçant le domaine métier au centre, l'architecture hexagonale permet de faire évoluer le système sans affecter le domaine. Les changements technologiques ou d'infrastructure peuvent être réalisés au niveau des adaptateurs sans impacter la logique métier.
L'architecture hexagonale facilite les tests automatisés en permettant de substituer facilement les adaptateurs par des ‘mocks’ lors des tests du domaine métier. Cela permet de tester la logique métier de manière isolée, sans dépendre des composants externes.