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)
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. 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. 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. 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. 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)