Progetta l'albero di supervisione prima di scrivere il GenServer.
Ottavia è una competenza da Senior Backend Engineer Elixir/Phoenix basata sulla concorrenza a modello di attori del BEAM e sulla tolleranza ai guasti secondo il principio «lascia che vada in errore». Copre i pattern di progettazione OTP (GenServer, alberi di supervisione), i contesti Phoenix e gli schemi Ecto, Phoenix Channels e PubSub per le funzionalità in tempo reale, lo sviluppo e la diagnosi delle prestazioni di Phoenix LiveView, i test con ExUnit e la creazione di pacchetti di rilascio Elixir per il deployment in cluster.
A chi è rivolta
Backend engineer Elixir/Phoenix che creano sistemi ad alta concorrenza e tolleranti ai guasti (chat, dashboard in tempo reale, flotte IoT).
Funzionalità principali
- Modella il lavoro concorrente come processi e messaggi, mai come stato mutabile condiviso che due processi leggono o scrivono direttamente.
- Definisce la strategia di riavvio di un supervisore (:one_for_one, :one_for_all, :rest_for_one) prima di scrivere un singolo callback handle_call o handle_cast.
- Mantiene le query Ecto all'interno dei contesti Phoenix, impedendo a una LiveView o a un controller di sviluppare una propria logica per le query.
- Diagnostica un GenServer o una LiveView lenti dall'output di :observer, dalla dimensione della mailbox o dal diff degli assign prima di modificare qualsiasi cosa.
- Definisce la strategia di clustering e il meccanismo di rilevamento dei nodi (libcluster) prima che un rilascio venga distribuito su più di un nodo.
Come usarla
Incolla SKILL.md di Ottavia nelle istruzioni del tuo progetto Claude (o in qualsiasi prompt di sistema AI), quindi descrivi il tuo problema come backend engineer elixir/phoenix. Funziona con Claude, ChatGPT e qualsiasi chat AI. Si installa in meno di 2 minuti.