Beyond DDD: uno sguardo aCQRS and event sourcing
about me {     "firstName": "Alessandro",     "lastName": "Melchiori",     "role": "software architect @ codiceplastico", ...
Il contesto• Applicazione finanziaria (non “always online”)• Circa 70 utenti• 250.000+ aziende• 750.000+ bilanci• 70.000.0...
Agenda• Com’era• Com’è• Come sarà
Presentation Layer                            Come era…Service/Application Layer     Domain Model           Storage
Come era…
Come era…
Come era…
I problemi…• Logica (mal) sparpagliata• Contesti non definiti• Modello “fragile” e poco propenso alle evoluzioni• Un unico...
DDD: brevi cenni• Use AGGREGATES as unit of consistency across your domain  model• Protect your model with clearly defined...
DDD: brevi cenni• It’s really become clear to me in the last couple of years that we  need a new building block and that i...
CQRS / ES: brevi cenni• Every method should either be a command that performs an  action, or a query that returns data to ...
CQRS / ES: brevi cenni• A single model cannot be appropriate for reporting, searching  and transactional behavior• State t...
L’evoluzione
Presentation Layer                                                    Come è…                             Service LayerRea...
Come sarà…                       Worker / Web Role      Service Bus                                        ACS            ...
Quando    DDD/CQRS/ES    fanno per me?Chiedilo al «tuo» UBIQUITOUS LANGUAGE                            (Alessandro Melchio...
Quando      DDD/CQRS/ES      fanno per me?Tackling Complexity in the Heart of Software
Upcoming SlideShare
Loading in …5
×

Beyond DDD: uno sguardo a CQRS and event sourcing

727 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
727
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
10
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Beyond DDD: uno sguardo a CQRS and event sourcing

  1. 1. Beyond DDD: uno sguardo aCQRS and event sourcing
  2. 2. about me { "firstName": "Alessandro", "lastName": "Melchiori", "role": "software architect @ codiceplastico", "contacts": [ { "type": "email", "value": alessandro@codiceplastico.com }, { "type": "twitter", "value": "@amelchiori" }, { "type": "blog", "value": http://blog.codiceplastico.com/melkio } ] }
  3. 3. Il contesto• Applicazione finanziaria (non “always online”)• Circa 70 utenti• 250.000+ aziende• 750.000+ bilanci• 70.000.000+ voci di bilancio• 16.000+ call/mese• “Pluggato” a servizi di terze parti• Picchi di lavoro “temporali” (…la nuvola può darci una mano)
  4. 4. Agenda• Com’era• Com’è• Come sarà
  5. 5. Presentation Layer Come era…Service/Application Layer Domain Model Storage
  6. 6. Come era…
  7. 7. Come era…
  8. 8. Come era…
  9. 9. I problemi…• Logica (mal) sparpagliata• Contesti non definiti• Modello “fragile” e poco propenso alle evoluzioni• Un unico modello per la lettura e per la scrittura• Prestazioni• UI “generazionalista”
  10. 10. DDD: brevi cenni• Use AGGREGATES as unit of consistency across your domain model• Protect your model with clearly defined BOUNDED CONTEXT (Eric Evans) BC 01 BC 02 BC 03
  11. 11. DDD: brevi cenni• It’s really become clear to me in the last couple of years that we need a new building block and that is the Domain Events (Eric Evans) BC 01 BC 02 BC 03
  12. 12. CQRS / ES: brevi cenni• Every method should either be a command that performs an action, or a query that returns data to the caller, but NOT BOTH (Bertrand Meyer)
  13. 13. CQRS / ES: brevi cenni• A single model cannot be appropriate for reporting, searching and transactional behavior• State transition are an important part of our problem space and should be modeled within our domain (Greg Young, 2008)
  14. 14. L’evoluzione
  15. 15. Presentation Layer Come è… Service LayerRead storage Domain Model Write storage
  16. 16. Come sarà… Worker / Web Role Service Bus ACS AZURE ? Blob Storage MongoDb (PaaS or SaaS)
  17. 17. Quando DDD/CQRS/ES fanno per me?Chiedilo al «tuo» UBIQUITOUS LANGUAGE (Alessandro Melchiori)
  18. 18. Quando DDD/CQRS/ES fanno per me?Tackling Complexity in the Heart of Software

×