Successfully reported this slideshow.
Your SlideShare is downloading. ×

Context oriented architecture - Put the boundary in the right place

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 63 Ad

Context oriented architecture - Put the boundary in the right place

Download to read offline

The slides of the talk I gave at PHPDay Italy 2016.

Last year the hype was on SOA, today is on the Microservices Architecture, what about tomorrow? No one knows. Whatever it is the architecture you want to use, we probably agree that the strategic goal of a tech team is to support a company business, creating customer value. How can we model our software and create an architecture to achieve that? What we are trying to do at Lendinvest, is using Domain Driven Design to drive the design of our architecture.

The slides of the talk I gave at PHPDay Italy 2016.

Last year the hype was on SOA, today is on the Microservices Architecture, what about tomorrow? No one knows. Whatever it is the architecture you want to use, we probably agree that the strategic goal of a tech team is to support a company business, creating customer value. How can we model our software and create an architecture to achieve that? What we are trying to do at Lendinvest, is using Domain Driven Design to drive the design of our architecture.

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

Viewers also liked (20)

Advertisement

Similar to Context oriented architecture - Put the boundary in the right place (20)

Recently uploaded (20)

Advertisement

Context oriented architecture - Put the boundary in the right place

  1. 1. Context Oriented Architecture Put the boundary in the right place May 13th-14th 2016 — Verona, Italy Leonardo Proietti @_leopro_
  2. 2. github.com/leopro
  3. 3. “Any intelligent fool can make things bigger, more complex and more violent. It takes a touch of genius - and a lot of courage - to move in the opposite direction.” Ernst Friedrich Schumacher
  4. 4. DDD is a learning path
  5. 5. DDD is a learning path!
  6. 6. Take care of your Ubiquitous Language
  7. 7. You need domain experts ...
  8. 8. … and right devs, UX, designers.
  9. 9. Prototype Getfeedback Keep going
  10. 10. Continuous negotiation
  11. 11. Just because you can doesn't mean you should.
  12. 12. Context Matters
  13. 13. Model
  14. 14. User Context Customer Context Investor Context Borrower Context
  15. 15. User User Context Customer Context - Register - Login - Verification - Store card - Charge card - Apply as customer
  16. 16. User User Context Customer Context - Register - Login - Verification - Store card - Charge card - Apply as customer Identity
  17. 17. Behaviours, not only data
  18. 18. Our architecture
  19. 19. API Client Domain Model Controller Command Bus Persistence HTTPClient QueueClient Domain Model Controller Command Bus Persistence HTTPClient QueueClient
  20. 20. User Context Customer Context API CALL
  21. 21. User Context Customer Context
  22. 22. User Context QUEUE Worker (Node.js) Customer Context
  23. 23. Behavioural entities AKA rich modeling
  24. 24. Unit Testing
  25. 25. Mitigate the locking
  26. 26. Quick Invest Command Handler Model Worker (Node) API Persistence API Client Invest Command Handler Model Queue
  27. 27. Third party service integration
  28. 28. Command Handler Model API Client Worker third partyQueue Domain Events
  29. 29. Command Handler Model API Client Worker third partyQueue Domain Events Worker third partyQueue Worker third partyQueue
  30. 30. Functional Testing
  31. 31. Customer Context Investor Context Request Response
  32. 32. Customer Context Investor Context Request Response HTTP Client Stub
  33. 33. Pitfalls
  34. 34. Value Object (Doctrine embeddable)
  35. 35. Value Object (Doctrine embeddable) All the fields related to the Address in the user table must be nullable and you have to validate them in the model
  36. 36. Referential integrity
  37. 37. Referential integrity Because each service has his on db, you should find another way to enforce the referential integrity
  38. 38. Transactional consistency
  39. 39. Transactional consistency We are violating the transactional consistency because we’re using the UOW to persist both Investor and Loan
  40. 40. “At the end of the day we are selling shoes.” @cirpo
  41. 41. Credits
  42. 42. Thank you.
  43. 43. Questions?
  44. 44. https://joind. in/talk/47383

×