Criteria | Traditional Layered Architecture | Hexagonal Architecture |
---|---|---|
Complexity | Simpler, with fewer moving parts and easier to understand and implement | More complex, with more moving parts and more nuanced design |
Coupling | Tight coupling between layers | Loose coupling between layers, with the application layer being the main entry point for external inputs |
Flexibility | Inflexible, as changes to one layer can affect other layers | More flexible, as changes to one layer do not affect other layers |
Focus | Separation of concerns within the application | Separation of concerns between the application and the external world |
Layers | Fixed set of layers | Flexible set of layers that can be added or removed as needed |
Maintenance | More difficult to modify and extend, as changes to one layer can affect other layers | Easier to modify and extend, as the separation of concerns and use of adapters and ports make it easier to modify the application |
Responsibilities | Each layer has a specific responsibility | Domain layer responsible for business logic, application layer responsible for handling user input and output |
Scalability | Difficult to add new adapters or ports without affecting the core domain logic | Easier to add new adapters and ports, as they can be added without affecting the existing architecture |
Testability | Difficult to test individual layers in isolation | Easier to test individual layers in isolation, as adapters and ports can be mocked or stubbed |
Created
October 7, 2023 02:34
-
-
Save EliFuzz/d1f03f96473042d5584a1a8c54862e13 to your computer and use it in GitHub Desktop.
Comparison Table: Hexagonal Architecture vs Traditional Layered Architecture
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment