Hexagonal
Hexagonal architecture separates the application core from adapters.
architecture :hexagonal
This creates four components:
applicationdomainportsadapters
The core rules are:
domainmust not useadaptersportsmust not useadaptersapplicationcan usedomainandportsadapterscan useapplication,domain, andports- no cycles across the four components
The default Rails-flavored directories are:
application: %w[app/services/**/*.rb app/use_cases/**/*.rb]
domain: "app/domain/**/*.rb"
ports: "app/ports/**/*.rb"
adapters: %w[app/adapters/**/*.rb app/integrations/**/*.rb app/infrastructure/**/*.rb]
Pass any of those keys to override the defaults.