Architecture
Hexagonal vs layered architecture
Both compile. Both ship. The difference doesn’t show on day one. It shows on year three, when the business logic is welded to the framework and the database and nobody can change one without breaking the others.
What “layered” gives you
Controllers, services, repositories: fast to start, familiar to everyone. But the domain ends up importing JPA, Spring and the web layer, so your business rules can’t be tested, reused or reasoned about without the whole stack around them.
What hexagonal changes
Ports and adapters: the domain has zero framework dependencies, and the database, the framework and the delivery mechanism become swappable details behind ports. The business logic is the stable core; everything else plugs into it.
Why generators usually produce layered CRUD
Because it’s the path of least resistance, and AI-assisted teams drift toward it under deadline pressure. AlveoForge does the opposite by construction: real hexagonal with vertical slicing, the same way every time, so the architecture can’t quietly rot into MVC with hexagonal folder names.