ddd-by-examples / library

A comprehensive Domain-Driven Design example with problem space strategic analysis and various tactical patterns.
MIT License
4.88k stars 723 forks source link

Architecture hexagonal ? #53

Closed lowdev closed 4 years ago

lowdev commented 4 years ago

Hi,

Thank you for your example.

I have remarks about your implementation of architecture hexagonal pattern. In architecture hexagonal we have port and adapter. In my understanding, Port is in domain package and adapter in infrastructure package. (Golden rule : Infra can see domain. Domain shouldn't see infra.)

However in your package catalogue you have CatalogueDatabase (adapter) and CatalogueConfiguration (infra) and Catalogue (domain).

Do you really follow archi hexagonal pattern or am I wrong somewhere ?

lowdev commented 4 years ago

Lending package seems to me more in adequation with archi hexagonal.

pilloPl commented 4 years ago

Hi, have you read the manual?

Bounded contexts should (amongst others) introduce autonomy in the sense of architecture. Thus, each module encapsulating the context has its own local architecture aligned to problem complexity. In the case of a context, where we identified true business logic (lending) we introduced a domain model that is a simplified (for the purpose of the project) abstraction of the reality and utilized hexagonal architecture. In the case of a context, that during Event Storming turned out to lack any complex domain logic, we applied CRUD-like local architecture.

Hexagon is not global architecture, it is local one in modular monolith (applied where it made sense)

lowdev commented 4 years ago

Sorry, I didn't read that. I'm new on this pattern in my research I felt in your repo.

The crud approach for "catalogue" seems fair to me.

Thanks a lot for your response and thank again for your repo.