Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

How a large corporation used Domain-Driven Design to replace a loyalty system

448 views

Published on

Explore Domain-Driven Design Conference. Denver 2019.

More Domain-Driven Design related content at: https://domaincentric.net/

Published in: Technology
  • Be the first to comment

How a large corporation used Domain-Driven Design to replace a loyalty system

  1. 1. How a large corporation used Domain-Driven Design to replace a loyalty system
  2. 2. Kacper Gunia Independent consultant & Trainer DomainCentric.net @ddd_london @cakper
  3. 3. The Rescue Mission @cakper
  4. 4. The backlog @cakper
  5. 5. Event Storming @cakper
  6. 6. Microservices @cakper
  7. 7. Suboptimal boundaries @cakper
  8. 8. Teams distributed across the globe @cakper
  9. 9. New and shiny technologies @cakper
  10. 10. Skill Gap @cakper
  11. 11. So what did we learn? @cakper
  12. 12. Let people learn and make mistakes @cakper
  13. 13. Facilitate learning → Practice deliberately → Vary the assignments → Give access to resources → Explore solutions, show options → Collaborate, evaluate and conclude @cakper
  14. 14. Increase throughput and reduce work in progress @cakper
  15. 15. Work with Conway's law @cakper
  16. 16. Technology is cool @cakper
  17. 17. Delivering value is cooler @cakper
  18. 18. Functional programming is just a tool @cakper
  19. 19. Find helpful boundaries @cakper
  20. 20. It didn't matter! @cakper
  21. 21. Can we deliver software? @cakper
  22. 22. Hell Yes! @cakper
  23. 23. The Legacy Rewrite @cakper
  24. 24. Legacy is great! @cakper
  25. 25. Context Map @cakper
  26. 26. C4 Model: System Context Diagram1 1  Simon Brown, https://c4model.com/
  27. 27. Big Picture Event Storming @cakper
  28. 28. Ubiquitous Langugage of legacy @cakper
  29. 29. Impact Mapping 2 2  Gojko Adzic, https://www.impactmapping.org/
  30. 30. Story mapping3 3  https://manifesto.co.uk/user-story-mapping/
  31. 31. Design Level Event Storming4 4  Alberto Brandolini, Introducing EventStorming
  32. 32. Prototype it! @cakper
  33. 33. Model Exploration Whirlpool5 5  Eric Evans, http://domainlanguage.com/ddd/whirlpool/
  34. 34. Leverage existing specs and tests @cakper
  35. 35. Consider both technical and social constraints @cakper
  36. 36. Constantly monitor and evaluate your choices @cakper
  37. 37. Consistency is a business problem @cakper
  38. 38. Microservices @cakper
  39. 39. Event Sourcing @cakper
  40. 40. Learning curve @cakper
  41. 41. Events are explicit @cakper
  42. 42. Data migration @cakper
  43. 43. Projections @cakper
  44. 44. Testing @cakper
  45. 45. Living Documentation @cakper
  46. 46. Design for replayability @cakper
  47. 47. (Do not) Roll your own Event Store @cakper
  48. 48. Summary → Legacy is a source of requirements, not design → Use strategic patterns to understand the system → Create and evolve tactical design iteratively → Monitor the sociotechnical architectrue @cakper
  49. 49. Thank you! Training: Strategic DDD & Sociotechnical Architecture NYC 18th - 19th November 2019 @cakper / DomainCentric.net

×