Avanscoperta
Actor Model Workshop

Actor Model Workshop

Per affrontare le sfide legate a concorrenza e scalabilità in modo alternativo

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.

F.A.Q.

Cosa devo installare prima del corso?
Elixir 1.11, un editor tipo VsCode, Git, docker. Forniremo tutte le istruzioni tecniche e su cosa installare due settimane prima del corso.

È un workshop per principianti o per esperti?
Sebbene gli argomenti vengano introdotti partendo dalle basi, è bene avere un minimo di conoscenza del linguaggio Elixir e di alcuni elementi della libreria OTP.

Cosa devo assolutamente avere per potermi iscrivere a questo corso online?
Se possiedi un computer/tablet, una rete stabile (almeno 20 Mbps in download e 10 Mbps in upload), cuffie, microfono e videocamera, allora puoi iscriverti al corso senza problemi. Un paio di settimane prima del corso ti invieremo tutte le informazioni sugli strumenti che useremo e come accedervi.
Per la rete, prova a fare uno Speed Test.
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.

N.B.

Il workshop verrà confermato al raggiungimento dei numeri minimi di partecipanti utili alla sua attivazione. Invieremo comunicazione agli iscritti due settimane prima del workshop al più tardi.

Info pratiche sul workshop

Lingua: italiano.
Numero massimo di partecipanti: 12.
Strumenti e postazione: il corso si svolgerà online e in diretta, attraverso l’uso di alcuni strumenti digitali. A iscrizione avvenuta, riceverai tutti i dettagli su come accedere al corso e interagire con il docente e gli altri partecipanti, e su come prepararti al meglio.

Vuoi saperne di più sui nostri biglietti?

Biglietti

Under_Cover_LearnerSCONTO 20%

Se ti stai iscrivendo al corso a titolo personale e non hai la Partita IVA, c’è una tariffa speciale per te: uno sconto del 20% sul prezzo corrente del biglietto, che potrai ottenere inserendo il codice Under_Cover_Learner su Eventbrite qui sopra, dove trovi "Enter promo code" (prima di premere il tasto "checkout").

N.B.: Il codice non può essere utilizzato con nessun’altra offerta, ed è valido su tutti i tipi di biglietto.

Emanuele DelBono

Emanuele è un architetto e sviluppatore con esperienza decennale nella realizzazione di applicazioni e servizi web.

Da sempre interessato a imparare nuovi paradigmi e nuove metodologie, negli ultimi anni si sta dedicando all'analisi, alla progettazione e alla realizzazione di applicazioni applicazioni enterprise utilizzando Elixir come linguaggio di programmazione.

Convinto ricercatore del Clean Code, è anche docente sulle tematiche di design del codice e del Test-Driven Development.

APPROFONDIMENTI

Introduzione all'Actor Model: il video del remote meetup con Emanuele DelBono.

Guarda il video Emanuele DelBono e Gabriele Lana Costruire una web app con React ed Elixir, intervistati da Alberto Brandolini.

Leggi l'intervista a Emanuele DelBono sul nostro blog: Vi raccontiamo cos’è CodeJam Workshop.

Chi siamo, in breve :)

Avanscoperta è un ecosistema in espansione fatto di professionisti con una grande passione per l’apprendimento: ci piace imparare cose nuove e scambiare esperienze e idee, esplorando territori finora inesplorati in ambito software, nella sua accezione più ampia possibile.

Selezioniamo con attenzione gli argomenti più rilevanti e i migliori docenti da tutto il mondo, e diamo particolare importanza alle tecniche di insegnamento, preferendo approcci pratici e coinvolgenti.
Unisciti a noi! 🙂

Ti interessa questo corso?

Se hai delle domande specifiche, o vuoi ricevere maggiori informazioni, scrivici. Saremo felici di risponderti!







    NEWSLETTER

    Vuoi ricevere una volta a settimana i nostri contenuti esclusivi su tecnologia, sviluppo software, business e design?

    ISCRIVITI ALLA NEWSLETTER :-)

    Iscriviti alla newsletter!