In this Hands-on Lab, you will get to know the “clean hexagonal onion” architecture pattern and how to apply it with a dash of Domain-Driven Design to a Spring Boot application. The “Clean hexagonal onion” architecture pattern is inspired by Ports & Adapters by A. Cockburn, Onion Architecture by J. Palermo and Clean Architecture by Uncle Bob. Ever wondered how to combine all these patterns and implement that in a Spring Boot app? This Hands-on Lab will guide you through it! The entire workshop covers: - Deep-dive into the architecture layers of the clean hexagonal onion - Design of REST-Controllers: Read vs. Write with CQRS - Domain modelling done right - Domain Services: When to use them and what domain logic is - Decoupling the domain from the rest of the world - Domain Entity vs Data Entity: how to map correctly - Dependency Inversion Principle: how to stop external APIs from polluting our domain - Domain Events in Spring: mainstream best practices ...and much more! Installation requirements: - JDK 17 - Maven >= 3.8.x - IDE of your choice - Execution rights on your machine (yes, this has actually been a case) - Clone the git repository https://github.com/MaikKingma/clean-hexagonal-onion-workshop/tree/setup-done. Detailed instructions can be found here: https://maikkingma.github.io/clean-hexagonal-onion-docs/docs/setting-up-an-initial-application
Workshop 💻 Intermediate ⭐⭐ Track: JVM ( Architecture, µservices, JVM langs, ...)
spring boot
DDD
Cqrs
clean architecture
hexagonal architecture
DDD
ports and adapters