Il corso

CQRS, Event Sourcing e test del dominio

Come costruire e testare applicazioni reattive basate su eventi, attraverso i pattern Event Sourcing e CQRS.

CQRS Event sourcing dominio

Il corso Event Sourcing e test del dominio

Cosa ti spinge a fare questo corso? Perché dovresti interessarti a questo argomento?

Questa proposta è la naturale continuazione del corso “Introduzione a DDD, CQRS ed i loro pattern”.

Gli eventi di dominio si sono guadagnati nel tempo un ruolo molto importante all’interno del mondo del Domain Driven Design, diventando lo strumento cardine per lo scambio di informazioni. Questo ha promosso architetture reattive, con approccio Event Driven: a completamento di esse troviamo il pattern Event Sourcing. Gli eventi di domino vengono storicizzati e diventano l’unica fonte della verità, offrendo opportunità tecniche e di business a prova di futuro.

Inoltre, attraverso gli eventi e l’approccio Behavior Driven Design vedremo come sia possibile far evolvere l’applicazione partendo da scenari di test, in maniera lineare ed efficace.

CQRS, Event Sourcing e test del dominio

Quando: 15-16 Maggio 2024

Dove: Milano, sede di Mia-Platform (indicazioni qui)

Orario: 9-17, con un’ora di pausa 13-14

Il programma

Nel corso delle due giornate di formazione, realizzeremo un sistema composto da microservizi in grado di comunicare tra loro attraverso un service bus. Scriveremo insieme gli specification test per testare gli eventi dell’applicazione e di conseguenza garantire il corretto comportamento del nostro dominio.
Vedremo come sia possibile gestire i “Long running process” e il pattern Saga. Ci occuperemo infine di versioning degli eventi: vedremo come gestire eventi che mutano nel tempo all’interno della nostra applicazione.

Giorno 1

Event sourcing

  • Introduction to Event sourcing
  • Testing degli eventi
  • Versioning degli eventi
  • Replay degli eventi
    • Esercizi

Giorno 2

Long running process

  • Pattern Saga
  • Saga orchestrata
  • Saga coreografata
    • Esempi ed esercizi

Cosa otterrai

Event Sourcing e CQRS sono sulla bocca di tutti. Le moderne applicazioni sono sempre più complesse, e la scalabilità non è più un’opzione, ma un requisito.

Implementare un sistema reattivo, basato su eventi, è una sfida ardua: i princìpi alla base sono apparentemente semplici, ma la loro implementazione è tutt’altro che triviale. Una cattiva architettura può avere impatti dannosi sulla salute del sistema, costringendo team e aziende a sforzi enormi per porre rimedio. 

In questo corso puoi sfruttare l’esperienza dei docenti, che negli ultimi dieci anni hanno sperimentato soluzioni e commesso tutti gli errori che si potevano commettere: questo permetterà a voi di evitarli.

I tuoi docenti

Alberto Acerbis

Alberto è sviluppatore, architetto e formatore. Lavora principalmente con tecnologie Microsoft, ma ama spaziare in diverse tecnologie. Per lui scrivere software significa risolvere problemi di business e fornire valore al cliente. Trova che i pattern del DDD siano di grande aiuto per raggiungere lo scopo. Alberto frequenta numerose community. Spesso contribuisce condividendo le sue esperienze. È co-founder della community DDD-Open e membro attivo di altre community come la Blazor Community Italia. Collabora con Intré e Agile Reloaded. Nel tempo libero adora perdersi in montagna, tracciando curve su neve immacolata o cercando il passaggio più facile appeso a una parete di roccia.

Alessandro Colla

Alessandro è un appassionato di tecnologia, un praticante dell’agilità e un programmatore con oltre 20 anni di esperienza nello sviluppo di applicazioni desktop, web, mobile, AR, VR e IoT. Ha iniziato ad approcciare il Domain-Driven Design (DDD) nel 2008 e tutt’ora continua a cercare la “verità” in questo campo. Attualmente sviluppa in C# e Javascript, ma ha esperienza in Delphi, PHP, C++ e Visual Basic. È un architetto software e un appassionato di CQRS+ES (Command Query Responsibility Segregation e Event Sourcing). È Head of Development e partner di Evoluzione, web-agency bresciana. Oltre alla tecnologia, ama le arti marziali: è istruttore di Krav Maga IKMF.

Ho delle domande…posso farle?

I docenti apprezzano le domande!

Durante le giornate ci saranno diversi momenti dedicati alle domande, in modo che ogni partecipante possa chiarire i suoi dubbi e ottenere spunti per le particolari sfide che sta affrontando.

Se hai delle domande sugli argomenti che verranno trattati o qualsiasi dubbio che vuoi risolvere prima dell’inizio del corso, ti invitiamo a scorrere la pagina nel prossimo blocco “domande utili” e se non trovi ciò che fa al caso tuo, le puoi anticipare fin da subito compilando questo form.


Domande utili

A chi è rivolto il corso?

Il corso è rivolto a sviluppatori software, team leader, architetti software, engineering managers, CTO e chiunque altro voglia comprendere appieno le potenzialità offerte dai pattern CQRS e Event Sourcing.

Ci sono prerequisiti in termini di competenze per partecipare?

  • Esperienza nello sviluppo software come sviluppatore.
  • Padronanza di un linguaggio di programmazione orientato agli oggetti e di una libreria di test (ad es. C#, Java, etc.).
  • Conoscenza basilare del Domain Driven Design (vedi letture consigliate).

E in termini tecnici?

Serve una installazione funzionante del framework .NET Core (.NET Framework 7.0 o superiore), un IDE per scrivere codice in C# (Visual Studio, JetBrains Rider o VSCode). Useremo inoltre Git e Docker.

Qualche giorno prima del corso riceverete comunque una mail con tutte le istruzioni per arrivare preparati.

Quale linguaggio di programmazione verrà usato per gli esercizi durante il corso?

Gli esempi saranno in .NET e C#. La conoscenza del linguaggio è un vantaggio, ma non è fondamentale per la comprensione dei concetti.

Come posso prepararmi al meglio a questo corso?

Il modo migliore per prepararsi è seguire il corso “DDD, dalla teoria alla pratica”, dove vengono discussi i fondamenti di DDD e dei pattern CQRS e Event Sourcing. Di seguito alcune risorse per iniziare a inquadrare l’argomento:

Cosa mi porto a casa da questo corso?

Questo corso ti offre una visione completa dei pattern Event Sourcing e CQRS. Ti mostra come organizzare una applicazione basata sullo scambio di messaggi (eventi e comandi). Ti mostra concretamente come implementare un sistema funzionante usando questi pattern, andando in profondità di dettagli implementativi, come ad esempio il concetto di eventi di integrazione e versionamento degli eventi. Ti mostra esempi concreti di Saga, da quelle orchestrate a quelle coreografate. Ti permette di comprendere come effettuare dei test in contesti eventi-driven, offrendoti una tecnica semplice ed efficace. Dopo questo corso avrai un’idea chiara (e degli esempi funzionanti di codice!) che ti permetteranno di sperimentare le tecniche apprese sul tuo codice di produzione.

Come si svolgerà il corso e quanto dura?

Il corso si svolge in presenza e dura 2 giorni.

È previsto un test finale?

No.

Verrà rilasciata una certificazione?

No, ma i partecipanti riceveranno un attestato di partecipazione firmato e brandizzato Agile Reloaded.


Non trovi il corso che fa al caso tuo?
Vuoi partecipare al corso insieme al tuo team?
Vuoi portare il corso in azienda?

Richiedi informazioni