Hexagonal Software Architecture for Web Applications Course Syllabus
Full curriculum breakdown — modules, lessons, estimated time, and outcomes.
Overview: This course provides a hands-on introduction to Hexagonal Architecture (Ports and Adapters) for building maintainable, testable web applications. Over 8 modules, each taking approximately 1 week (6-8 hours), you'll learn to isolate domain logic, implement adapters, and test effectively. The course uses real-world examples and a consistent code-driven approach to demonstrate how to evolve and deploy decoupled systems.
Module 1: Introduction to Hexagonal Architecture
Estimated time: 7 hours
- Evolution of software architecture
- Limitations of traditional layered designs
- Hexagon model overview
- Sketching the hexagon diagram for a To-Do application
Module 2: Defining the Domain & Ports
Estimated time: 7 hours
- Core domain modeling
- Boundary interfaces (ports)
- Use-case definitions
- Writing domain entities and port interfaces for task creation and querying
Module 3: Building Inbound Adapters
Estimated time: 7 hours
- HTTP controllers as inbound adapters
- CLI interfaces as entry points
- WebSocket entry points
- Implementing a REST adapter with a lightweight web framework
Module 4: Developing Outbound Adapters
Estimated time: 7 hours
- Persistence adapters using SQL and NoSQL
- Messaging adapters (Kafka, RabbitMQ)
- External API clients
- Creating a database adapter using an ORM behind a repository port
Module 5: Wiring the Application & Configuration
Estimated time: 7 hours
- Dependency injection fundamentals
- Wiring ports to adapters
- Environment-based configuration
- Bootstrapping the application in a main entry-point
Module 6: Testing Strategies
Estimated time: 7 hours
- Unit testing domain logic with mocked ports
- Integration testing of adapters
- End-to-end validation
- Writing tests with fake adapters and in-memory databases
Module 7: Error Handling & Cross-Cutting Concerns
Estimated time: 7 hours
- Exception translation across adapter boundaries
- Logging via outbound ports
- Metrics and monitoring patterns
- Security adapter implementation
Module 8: Deployment & Evolution
Estimated time: 7 hours
- Containerization of adapters with Docker
- Versioning ports for backward compatibility
- Gradual replacement of adapters
- Demonstrating database adapter swap
Prerequisites
- Familiarity with a web stack (e.g., Node.js, Python, or Java Spring)
- Understanding of dependency injection concepts
- Basic knowledge of databases and REST APIs
What You'll Be Able to Do After
- Design and implement Hexagonal Architecture in real web applications
- Isolate domain logic behind well-defined ports for testability
- Build and swap both inbound and outbound adapters
- Apply robust testing strategies across architectural layers
- Evolve and containerize adapters for deployment and maintenance