Abstract
I requisiti funzionali e non funzionali delle applicazioni moderne ci hanno portato a progettare e utilizzare nuovi modelli architetturali che risolvono i problemi posti dal business.
L’Actor Model è un modello concettuale per l’implementazione di applicazioni concorrenti. È una delle alternative possibili e ha un approccio molto innovativo ma basato su solidi principi di programmazione.
Sebbene la sua nascita risalga a quasi cinquant’anni fa, pochi linguaggi e framework lo supportano in modo completo e, tra i pochi, il candidato principe è Elixir. Le applicazioni scritte in questo linguaggio girano su una virtual machine (la BEAM) che ha molti dei costrutti necessari all’implementazione corretta dell’Actor Model.
Conoscere l’Actor Model, saperne usare i costrutti e i pattern, permette di affrontare problemi legati alla concorrenza e alla scalabilità in un modo diverso, ed è questo l’obiettivo del workshop con Emanuele DelBono.
Target Audience
Il workshop si rivolge a software developer e architetti che vogliono conoscere un nuovo modo di progettare e implementare le loro applicazioni. È richiesta una conoscenza dei concetti base di Elixir e della libreria OTP.
Programma
Il workshop ha l’obiettivo di fornire ai partecipanti gli strumenti necessari a valutare quando un’architettura basata sull’Actor Model è conveniente e utile per la risoluzione del problema.
Insieme realizzeremo un’applicazione completa usando i pattern del mondo dell’Actor Model. Questi verranno presentati, valutati e analizzati in un processo costruttivo step-by-step durante le sessioni.
In ogni sessione ci sarà spazio per la teoria ma sempre supportata dal codice che verrà scritto durante il workshop. Al termine di ogni giornata verranno lasciate alcune user story da implementare in autonomia tra una sessione e l’altra.
Agenda
Sessione 1
- Introduzione ai concetti di attore e messaggio,
- Presentazione del dominio dell’applicazione da implementare,
- Setup del progetto,
- Primo test (health-check),
- Modellazione dei primi elementi tramite attori.
Sessione 2
- Introduzione dei supervisor,
- Gestione del ciclo di vita e interazione tra attori tramite il process manager.
Sessione 3
- Persistenza dello stato,
- Pool di processi per aumentare la scalabilità.
Sessione 4
- Long running task,
- Conclusione del progetto,
- Considerazioni finali, Q&A e accenni a framework alternativi.
Cosa impareremo
- Cos’è l’Actor Model e come si differenzia da altri approcci
- Che tipo di problemi sono adatti a essere risolti con l’Actor Model
- Quali sono i componenti base di un’architettura basata sull’Actor Model
- Che relazioni esistono tra il Domain-Driven Design e l’Actor Model
- Come si organizzano grosse applicazioni che utilizzano l’Actor Model
- Come si testa un’applicazione basata sull’Actor Model
- Quali alternative esistono ad Elixir/Erlang.
Expect to get your hands dirty
Il workshop avrà un taglio decisamente pratico, ogni partecipante dovrà dotarsi del proprio editor preferito e degli strumenti necessari ad implementare l’applicazione.
Fin dalla prima sessione i partecipanti dovranno implementare parti dell’applicazione seguendo le user stories predisposte.
Dedicheremo anche una parte del tempo a domande puntuali, per discutere approfonditamente le soluzioni implementate.
Come si svolge
Il corso si svolgerà online e in diretta per un massimo di 12 persone: il docente e tutti i partecipanti saranno in video conferenza e avranno a disposizione una serie di strumenti digitali per interagire tra di loro e lavorare hands-on.
Nonostante la modalità online, il corso mantiene il suo approccio interattivo e partecipativo.
Per questo motivo, è richiesto che tutti i partecipanti abbiano la telecamera accesa per tutta la durata del workshop per una migliore fruizione e comunicazione.
Non sarà un corso passivo, fatto solo di slide e video pre-registrati.
Applicheremo alcuni principi del metodo Training from the back of the room, con prevalenza di attività su lectures.
Alle poche definizioni teoriche si affiancano numerosi esercizi ed attività pratiche.
La condivisione tra i partecipanti ed il supporto del trainer completano il quadro formativo.