Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Hexagonal architecture with Spring Boot [EPAM Java online conference]

486 Aufrufe

Veröffentlicht am

Nowadays traditional layered monolithic architecture in Java world is not so popular as 5-10 years ago. I remember how we wrote tons of code for each layer repeating almost the same parts for every application. Add unit and integration testing to understand how much time and efforts has been spent on repeatable work. All cool ideas around DDD (domain driven design) and Hexagonal Architecture was just a nice theory because reality hasn’t allow us to implement it easily. Even Dependency Injection with Spring framework was completely focused on traditional layered approach, not even talking about JavaEE platform.

Today we have Spring Boot ecosystem covering most of our needs for integration with almost all possible technologies and microservices architectural trend, enabling completely new approach to build Java applications around domain model. It is so natural to build Java domain-oriented services and connect them with external world using ports and adapters, that Hexagonal Architecture is almost enabled by default. You just need to switch your way of thinking…

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

Hexagonal architecture with Spring Boot [EPAM Java online conference]

  1. 1. Hexagonal architecture with Spring Boot Mikalai Alimenkou @xpinjection http://xpinjection.com
  2. 2. Telegram channel https://t.me/xpinjection_channel
  3. 3. Disclaimer This talk is based on personal experience
  4. 4. Domain Driven Design Expectations Reality
  5. 5. Everything is simple!
  6. 6. Layered architecture must have layers
  7. 7. Layered architecture for kids
  8. 8. More serious view
  9. 9. Help Dasha to find business logic
  10. 10. Business logic is easier to find and understand in single place
  11. 11. Everything should be Use Case driven
  12. 12. Alternative world
  13. 13. To connect to the port you need an adapter
  14. 14. Ports and adapters thinking
  15. 15. Fresh architectural paradigms
  16. 16. Spring Boot as game changer
  17. 17. Each service has similar structure SERVICE DB QUEUE UI API EXTERNAL SERVICES API CONTRACTS Spring MVC Spring MVC Spring Data Spring Messaging RestTemplate Feign Spring Cloud Contracts
  18. 18. You could work on business logic
  19. 19. Better focus helps to achieve better results
  20. 20. There are still some blockers #1. Transactions #2. Validation #3. Thick client #4. DB tuning #5. Thinking model
  21. 21. Summary • Change your point of view from layered approach • Start using ports and adapters approach • Make business logic use case driven • Learn how to use existing Spring Boot modules • Adopt Domain Driven Design ideas • Be happy unicorn in the rainbow world ;)
  22. 22. @xpinjection http://xpinjection.com mikalai.alimenkou@xpinjection.com