Unleash Your Domain With Greg Young @ DDD-Day

1,900 views

Published on

Published in: Technology
0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,900
On SlideShare
0
From Embeds
0
Number of Embeds
124
Actions
Shares
0
Downloads
1
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

Unleash Your Domain With Greg Young @ DDD-Day

  1. 1. Unleash Your DomainGreg Young
  2. 2. Agenda• The Issues• The Breakthroughs – Explicit State Representation – Event Storage – Command Query Separation – Asynchronous Context Mapping• Summary• Questions
  3. 3. State transitions are an important part of ourproblem space and should be modeled within our domain.
  4. 4. Line Items (n)Purchase Order Shipping Information
  5. 5. Shipping Cart 3 Items InformationCreated Added Added
  6. 6. AddItemCommand AddItemCommand AddItemCommand Purchase Order ChangeAddressCommand
  7. 7. Shipping Cart 3 Items 1Item InformationCreated Added Removed Added
  8. 8. 7654321
  9. 9. 6 5snap 4 3 2 1
  10. 10. Data Storage Domain Domain Object Object Application Services Remote Facade Send up DTO Request DTOStatus returned DTO returned Client
  11. 11. DTO Sent Request DTOAck/Nak Response DTO returned Send DTO Back to Show DTO on Server Screen User Interacts With DTO
  12. 12. Map DTO from DomainSave Domain Edit DTO in UI Object(s) Map Data from Send DTO to DTO to Domain Server
  13. 13. Query DataSave Domain Build Commands Object(s) Domain Validates Send Commands Commands to Domain
  14. 14. Data Storage Domain Domain Object Object Thin Read Layer (Direct to DTO) Remote Facade Application Services Remote Facade Message Sent Request DTOAck/Nak Response DTO returned Client
  15. 15. Write (Command) Data Storage Read (Query) Domain Domain Object Object Thin Read Layer (Direct to DTO) Remote Facade Application Services Remote Facade Message Sent Request DTOAck/Nak Response DTO returned Client
  16. 16. A single model cannot be appropriate for reporting, searching, and transactional behaviors…
  17. 17. The model that a client needs the data in adistributed system is screen based and different than the domain model.
  18. 18. Most queries can operate with relaxed consistency…
  19. 19. Denormalizer Data Storage ------------------- Data Storage Anti CorruptionDomain DomainObject Object Application Services Thin Read Layer (Direct to DTO) Remote Facade Remote Facade Client
  20. 20. Getters and Setters are adomain anti-pattern.
  21. 21. Most Bounded Contexts can interact with relaxed consistency.
  22. 22. Using relaxed consistency allows us to increase our scalability and availability!
  23. 23. “Man acts as though he were the shaper andmaster of language, while in fact it is language thatis the master of man.”
  24. 24. State transitions are an important part of ourproblem space and should be modeled within our domain.
  25. 25. Getters and Setters are a domain smell.
  26. 26. Most Bounded Contexts can interact with relaxed consistency.
  27. 27. A single model cannot be appropriate for reporting, searching, and transactional behaviors…
  28. 28. Questions

×