Advertisement
Advertisement

More Related Content

Slideshows for you(20)

Advertisement

Introducing Bounded Contexts in a monolithic application

  1. Introducing Bounded Contexts in a monolithic application @robertbaelde DDD Europe | 22-06-2022
  2. @robertbaelde DDD Europe | 22-06-2022 Imagine the start of a greenfield application
  3. @robertbaelde DDD Europe | 22-06-2022 Productivity in a monolith
  4. When a monolith scales in complexity - Cognitive load when developing is high - More difficult to predict the impact of changes - Hard to onboard new engineers - Implicit expertise @robertbaelde DDD Europe | 22-06-2022
  5. @robertbaelde DDD Europe | 22-06-2022 Bounded contexts!
  6. - Bounded contexts are loosely coupled & independent - Each bounded context has its own ubiquitous language - Each context has its own data - Contexts have an explicit owner @robertbaelde DDD Europe | 22-06-2022
  7. @robertbaelde DDD Europe | 22-06-2022
  8. At Amazon, what is a book? - Catalog: Picture, title, authors, rating, format (ebook / paper, category) - Recommendation: List of books often bought together with it - Shipping: Dimensions, weight, international restrictions due to content - Shopping cart: Price, eligible discounts - Customer review: List of ratings & reviews - Book search: title, isbn, authors - Search inside!: full-text content, copyright dealing policy @robertbaelde Bounded contexts - Cyrille Martraire DDD EU 2019 DDD Europe | 22-06-2022
  9. @robertbaelde DDD Europe | 22-06-2022
  10. @robertbaelde DDD Europe | 22-06-2022 Microservices
  11. @robertbaelde DDD Europe | 22-06-2022 Whoops
  12. Microservices are great In large organisations - Higher upfront design costs - Consistency & resilience is solvable, but adds complexity - Changing boundaries is expensive @robertbaelde DDD Europe | 22-06-2022
  13. @robertbaelde DDD Europe | 22-06-2022 Productivity with microservices
  14. @robertbaelde DDD Europe | 22-06-2022 Can we introduce boundaries in a monolith?
  15. Communication between bounded contexts - Messages (events & commands) - Direct calls using interfaces @robertbaelde DDD Europe | 22-06-2022
  16. - Public messages can be put on an event/command bus - Loose coupling, other contexts only know about public events/commands - Preferably messages are stored, and handled asynchronous @robertbaelde DDD Europe | 22-06-2022
  17. @robertbaelde DDD Europe | 22-06-2022
  18. @robertbaelde DDD Europe | 22-06-2022
  19. @robertbaelde DDD Europe | 22-06-2022
  20. - Alternative for μservice <> μservice api calls - Contexts expose an interface (contract) - Consuming context only knows about the interfaces, not the implementation of them @robertbaelde DDD Europe | 22-06-2022 DDD Europe | 22-06-2022
  21. @robertbaelde DDD Europe | 22-06-2022
  22. @robertbaelde DDD Europe | 22-06-2022
  23. @robertbaelde DDD Europe | 22-06-2022
  24. @robertbaelde DDD Europe | 22-06-2022
  25. @robertbaelde DDD Europe | 22-06-2022 How can we introduce boundaries in an existing monolith?
  26. - Start with creating a context map - Move classes to the context they belong to - Introduce static code analytics to detect cross context code usage - Refactor to use communication patterns. Decouple contexts @robertbaelde DDD Europe | 22-06-2022 DDD Europe | 22-06-2022
  27. @robertbaelde DDD Europe | 22-06-2022 https://github.com/ddd-crew/context-mapping
  28. @robertbaelde DDD Europe | 22-06-2022
  29. @robertbaelde DDD Europe | 22-06-2022 Move classes to their context
  30. @robertbaelde Introduce static code analytics to measure & protect - Cross context code use violations - Level of coupling between contexts DDD Europe | 22-06-2022
  31. @robertbaelde DDD Europe | 22-06-2022
  32. @robertbaelde DDD Europe | 22-06-2022 Introduce communication patterns
  33. @robertbaelde DDD Europe | 22-06-2022
  34. Advantages of a modular monolith - Boundaries without some of the disadvantages of microservices - Easier to refactor boundaries when you learn more about your domain - Easier to setup and develop in - A great step between monolithic application and microservices DDD Europe | 22-06-2022 @robertbaelde
  35. @robertbaelde DDD Europe | 22-06-2022
  36. Thanks for your attention! Connect with me @robertbaelde DDD Europe | 22-06-2022
Advertisement