Layered and Hexagonal Architecture

Layered architecture commonly separates controllers, services, and repositories. Hexagonal architecture separates application/domain logic from external adapters through ports.

HTTP / Messaging / CLI
         |
      Adapters
         |
        Ports
         |
Application / Domain
         |
        Ports
         |
     DB / APIs / Files

The key idea is dependency direction: business rules should not be tightly coupled to HTTP frameworks, database drivers, or cloud SDKs.

Key Takeaways
  • Architecture is primarily about dependency direction.
  • Ports isolate business logic from infrastructure.
  • Adapters are translation boundaries, not business-rule containers.