Your SlideShare is downloading. ×
0
Unleash Your Domain<br />Greg Young<br />
Agenda<br />The Issues<br />The Breakthroughs<br />Explicit State Representation<br />Event Storage <br />Command Query Se...
State transitions are an important part of our problem space and should be modeled within our domain.<br />
Line Items (n)<br />Purchase Order<br />Shipping Information<br />
Purchase Order<br />AddItemCommand<br />AddItemCommand<br />AddItemCommand<br />ChangeAddressCommand<br />
7<br />6<br />5<br />4<br />3<br />2<br />1<br />
6<br />5<br />snap<br />4<br />3<br />2<br />1<br />
Data Storage<br />Domain Object<br />Domain Object<br />Application Services<br />Remote Facade<br />Request DTO<br />DTO ...
Request DTO<br />DTO returned<br />DTO Sent<br />Ack/Nak Response<br />Send DTO Back to Server<br />Show DTO on Screen<br ...
Data Storage<br />Domain Object<br />Domain Object<br />Thin Read Layer (Direct to DTO)<br />Remote Facade<br />Applicatio...
Data Storage<br />Write (Command)<br />Read (Query)<br />Domain Object<br />Domain Object<br />Thin Read Layer (Direct to ...
A single model cannot be appropriate for reporting, searching, and transactional behaviors…<br />
The model that a client needs the data in a distributed system is screen based and different than the domain model.<br />
Most queries can operate with relaxed consistency…<br />
Data Storage<br />Data Storage<br />Denormalizer<br />-------------------<br />Anti Corruption<br />Pipeline<br />Domain O...
Getters and Setters are a domain anti-pattern.<br />
Most Bounded Contexts can interact with relaxed consistency.<br />
Using relaxed consistency allows us to increase our scalability and availability!<br />
“Man acts as though he were the shaper and master of language, while in fact it is language that is the master of man.”<br />
State transitions are an important part of our problem space and should be modeled within our domain.<br />
Getters and Setters are a domain smell.<br />
Most Bounded Contexts can interact with relaxed consistency.<br />
A single model cannot be appropriate for reporting, searching, and transactional behaviors…<br />
Questions<br />
Upcoming SlideShare
Loading in...5
×

Unleash Your Domain With Greg Young

3,852

Published on

Published in: Technology, Business
1 Comment
10 Likes
Statistics
Notes
  • Video of the presentation: http://www.youtube.com/watch?v=KXqrBySgX-s
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
3,852
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
110
Comments
1
Likes
10
Embeds 0
No embeds

No notes for slide

Transcript of "Unleash Your Domain With Greg Young"

  1. 1. Unleash Your Domain<br />Greg Young<br />
  2. 2. Agenda<br />The Issues<br />The Breakthroughs<br />Explicit State Representation<br />Event Storage <br />Command Query Separation<br />Asynchronous Context Mapping<br />Summary<br />Questions<br />
  3. 3.
  4. 4.
  5. 5.
  6. 6.
  7. 7.
  8. 8. State transitions are an important part of our problem space and should be modeled within our domain.<br />
  9. 9.
  10. 10. Line Items (n)<br />Purchase Order<br />Shipping Information<br />
  11. 11.
  12. 12. Purchase Order<br />AddItemCommand<br />AddItemCommand<br />AddItemCommand<br />ChangeAddressCommand<br />
  13. 13.
  14. 14.
  15. 15.
  16. 16. 7<br />6<br />5<br />4<br />3<br />2<br />1<br />
  17. 17. 6<br />5<br />snap<br />4<br />3<br />2<br />1<br />
  18. 18.
  19. 19.
  20. 20. Data Storage<br />Domain Object<br />Domain Object<br />Application Services<br />Remote Facade<br />Request DTO<br />DTO returned<br />Send up DTO<br />Status returned<br />Client<br />
  21. 21. Request DTO<br />DTO returned<br />DTO Sent<br />Ack/Nak Response<br />Send DTO Back to Server<br />Show DTO on Screen<br />User Interacts With DTO<br />
  22. 22.
  23. 23.
  24. 24. Data Storage<br />Domain Object<br />Domain Object<br />Thin Read Layer (Direct to DTO)<br />Remote Facade<br />Application Services<br />Remote Facade<br />Request DTO<br />DTO returned<br />Message Sent<br />Ack/Nak Response<br />Client<br />
  25. 25. Data Storage<br />Write (Command)<br />Read (Query)<br />Domain Object<br />Domain Object<br />Thin Read Layer (Direct to DTO)<br />Remote Facade<br />Application Services<br />Remote Facade<br />Request DTO<br />DTO returned<br />Message Sent<br />Ack/Nak Response<br />Client<br />
  26. 26. A single model cannot be appropriate for reporting, searching, and transactional behaviors…<br />
  27. 27.
  28. 28.
  29. 29. The model that a client needs the data in a distributed system is screen based and different than the domain model.<br />
  30. 30.
  31. 31. Most queries can operate with relaxed consistency…<br />
  32. 32. Data Storage<br />Data Storage<br />Denormalizer<br />-------------------<br />Anti Corruption<br />Pipeline<br />Domain Object<br />Domain Object<br />Application Services<br />Thin Read Layer (Direct to DTO)<br />Remote Facade<br />Remote Facade<br />Client<br />
  33. 33.
  34. 34. Getters and Setters are a domain anti-pattern.<br />
  35. 35.
  36. 36.
  37. 37.
  38. 38. Most Bounded Contexts can interact with relaxed consistency.<br />
  39. 39.
  40. 40. Using relaxed consistency allows us to increase our scalability and availability!<br />
  41. 41. “Man acts as though he were the shaper and master of language, while in fact it is language that is the master of man.”<br />
  42. 42. State transitions are an important part of our problem space and should be modeled within our domain.<br />
  43. 43. Getters and Setters are a domain smell.<br />
  44. 44. Most Bounded Contexts can interact with relaxed consistency.<br />
  45. 45. A single model cannot be appropriate for reporting, searching, and transactional behaviors…<br />
  46. 46. Questions<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×