← Tutti gli episodi
Copertina di Nessun padrone: la distribuzione tra pari
Stagione 56 · Episodio 006

Nessun padrone: la distribuzione tra pari

13 settembre 2026 5:03
0:00 5:03

Ciao, e benvenuto nella sesta puntata della cinquantaseiesima stagione. Oggi passiamo al secondo pilastro di Scylla, la distribuzione, e scopriamo che il suo modo di spargere i dati su tante macchine è profondamente diverso da tutto ciò che abbiamo visto finora. Oggi capiamo la distribuzione tra pari: nessun padrone.

Ripartiamo dal modello che conosciamo, per capire il contrasto. Con MySQL e con Mongo abbiamo visto uno schema chiaro: c'è una macchina principale, il capo, che riceve tutte le scritture; e ci sono delle copie, che la seguono. Se il capo cade, bisogna eleggerne uno nuovo, con un momento di trambusto. Funziona, ma ha un punto debole strutturale: esiste un capo, e quindi esiste un ruolo speciale che, se salta, crea un problema, anche solo per l'istante necessario a sostituirlo.

Voglio darti il modello di Scylla, perché è un'altra filosofia. Scylla, ereditando l'idea da Cassandra, dice: e se togliessimo il capo del tutto? Nel suo mondo non c'è una macchina principale. Tutte le macchine sono uguali, pari tra loro, disposte idealmente in cerchio. Qualunque di esse può ricevere qualunque richiesta, sia in lettura sia in scrittura. Non c'è un capo da perdere, perché non c'è nessun capo. Ogni dato viene copiato su alcune di queste macchine pari, così se una cade, le altre hanno comunque una copia e il servizio continua senza un singhiozzo, senza elezioni, senza trambusto.

Voglio dirti perché questo è così solido, perché è il suo grande pregio. Il vantaggio è enorme per chi non può permettersi che il sistema si fermi mai. In un mondo con un capo, il capo è un punto unico di fragilità: la sua caduta, per quanto gestita, è un momento delicato. In un mondo tra pari, non esiste nessun punto unico la cui perdita fermi tutto. Una macchina si guasta? Pazienza, ce ne sono altre identiche pronte a rispondere. Puoi perdere pezzi del sistema, uno dopo l'altro, e finché ne resta abbastanza, il servizio non si accorge di nulla. È la robustezza portata all'estremo. Ed è per questo che questo modello nacque proprio per i sistemi enormi, quelli fatti di centinaia di macchine, dove i guasti non sono l'eccezione ma la norma quotidiana: con così tante macchine, ogni giorno qualcosa si rompe, e un sistema che si ferma a ogni guasto sarebbe semplicemente inutilizzabile.

Voglio darti l'immagine che rende chiara questa idea, perché segna la differenza. Ricordi la sede centrale con le sue filiali, di cui parlammo per la replica classica? Solo la sede decideva, le filiali seguivano. Il modello di Scylla è diverso: non una sede con filiali, ma una squadra di colleghi tutti dello stesso grado. Un cliente arriva? Qualunque collega lo può servire. Un collega è a casa malato? Gli altri coprono, senza che il cliente se ne accorga, perché nessuno era insostituibile. Non c'è un ufficio del capo che, se chiuso, blocca tutto. Ci sono solo pari, intercambiabili.

Voglio essere onesto sul prezzo, perché ogni scelta ne ha uno. Ma togliere il capo non è gratis. Quando c'è un capo, la verità è semplice: quello che dice il capo è la verità, punto. Quando invece tutte le macchine sono pari e tengono ciascuna una copia, sorge una domanda spinosa: se chiedo la stessa cosa a due copie diverse, e per un istante non sono perfettamente allineate, qual è la risposta giusta? Senza un capo che faccia da arbitro, mettere d'accordo dei pari sulla verità del momento diventa un problema delicato. È il prezzo della robustezza, ed è esattamente il tema della prossima puntata.

Voglio darti la lezione generale, perché vale ovunque. La lezione è che centralizzare e distribuire sono due strade con pregi opposti. Un capo rende tutto più semplice da capire e da coordinare, ma diventa un punto di fragilità e un collo di bottiglia. Togliere il capo elimina quel punto debole e permette una robustezza enorme, ma sposta la difficoltà altrove: come far concordare tanti pari. Non esiste il pasto gratis. Ogni volta che elimini un punto debole in un posto, spunta una nuova sfida in un altro. Progettare sistemi è, in gran parte, scegliere quali problemi preferisci avere. E la maturità di un ingegnere si vede proprio qui: non nel cercare la soluzione perfetta che non esiste, ma nel capire quali compromessi sono accettabili per il suo caso, e quali no. Chi promette robustezza e semplicità insieme, senza costi, o non ha capito il problema o te lo sta nascondendo.

Per oggi ci fermiamo qui. Abbiamo visto la distribuzione tra pari di Scylla. Dove MySQL e Mongo hanno un capo che riceve le scritture e copie che seguono, con un momento delicato se il capo cade, Scylla toglie il capo del tutto: tutte le macchine sono pari, in cerchio, e qualunque può ricevere qualunque richiesta. Ogni dato è copiato su alcune di esse, così se una cade le altre continuano senza singhiozzi né elezioni. Come una squadra di colleghi dello stesso grado, dove nessuno è insostituibile, invece di una sede con filiali. Con un prezzo onesto: senza un capo arbitro, mettere d'accordo i pari sulla verità del momento è delicato. La lezione: non esiste il pasto gratis, progettare è scegliere quali problemi preferisci avere. Nella prossima puntata: quanto aspettare per essere sicuri. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.