← Tutti gli episodi
Copertina di Dividere per crescere: argomenti e partizioni
Stagione 42 · Episodio 005

Dividere per crescere: argomenti e partizioni

6 settembre 2026 5:14
0:00 5:14

Ciao, e benvenuto nella quinta puntata della quarantaduesima stagione. Finora abbiamo parlato del registro come se fosse uno solo, e su una sola macchina. Ma Kafka regge i flussi di dati di aziende enormi, miliardi di eventi. Come fa un registro a crescere così tanto? Oggi vediamo le due idee che glielo permettono: gli argomenti, per tenere le cose in ordine, e le partizioni, per crescere senza limiti. È la puntata su come Kafka si organizza, e su come si divide per diventare grande.

Partiamo dagli argomenti, perché mettono ordine. Finora ho parlato del registro al singolare, ma in realtà Kafka non ha un unico registro dove finisce tutto alla rinfusa. Ha tanti registri separati, ciascuno dedicato a un tipo di evento, e ognuno di questi si chiama argomento. C'è un argomento ordini, dove finiscono solo gli eventi legati agli ordini. Un argomento clic, per i clic degli utenti. Un argomento pagamenti, per i pagamenti. Un produttore scrive nell'argomento giusto; un consumatore si iscrive solo agli argomenti che gli interessano. È una separazione pulita per materia: ogni tipo di evento ha il suo registro dedicato, e non si mescola con gli altri.

Voglio ora affrontare il problema della crescita, perché è il cuore della puntata. Un singolo registro vive su una singola macchina. E una singola macchina, per quanto potente, ha un limite: può reggere solo un certo flusso di eventi al secondo. Se gli eventi piovono a un ritmo superiore a ciò che una macchina sopporta, quel registro non ce la fa più. Come si supera questo limite? Non si può rendere infinitamente potente una singola macchina. Ma si può fare un'altra cosa, molto più furba: spezzare il registro in più pezzi, e distribuire i pezzi su tante macchine diverse. Ed è esattamente ciò che fa Kafka.

Voglio spiegarti le partizioni, perché sono il meccanismo della scala. Kafka prende il registro di un argomento e lo divide in più pezzi, chiamati partizioni, e sparge questi pezzi su macchine diverse. Così il lavoro di scrivere e leggere non pesa più su una macchina sola, ma si ripartisce su tutto il gruppo: ogni macchina si occupa solo dei pezzi che le toccano. Il risultato è che un argomento può reggere un torrente di eventi molto più grande di quanto una singola macchina potrebbe mai sopportare, perché il carico è spalmato su tante. Più partizioni, più macchine al lavoro in parallelo, più eventi al secondo. Dividere il registro è il modo in cui Kafka cresce oltre ogni singola macchina.

Voglio darti la prospettiva onesta, perché dividere ha un prezzo. Attenzione, c'è un compromesso da conoscere. Ricordi che una delle due proprietà preziose del registro era l'ordine? Ecco: l'ordine è garantito dentro un singolo pezzo, dentro una singola partizione, ma non necessariamente tra pezzi diversi. Se due eventi finiscono in partizioni diverse, su macchine diverse, non c'è più una garanzia ferrea su quale dei due venga letto per primo nell'insieme. Quindi come dividi conta: gli eventi che devono restare in ordine tra loro vanno mandati nello stesso pezzo. È un'arte, decidere come spezzare, perché una divisione fatta male può rompere un ordine che ti serviva. La scala si compra dividendo, ma va diviso con criterio.

Voglio darti l'immagine che rende chiara questa idea, perché è quotidiana. Pensa a un ristorante molto affollato. Con un solo cuoco, per quanto bravo, oltre un certo numero di piatti non si va: è il collo di bottiglia. Allora si divide la cucina in postazioni: la griglia, la pasta, i dolci. Ora tante mani lavorano in parallelo, e il ristorante regge molti più coperti. Ogni postazione tiene in ordine i propri piatti; ma tra postazioni diverse, l'ordine di uscita non è più garantito allo stesso modo. Le partizioni sono le postazioni della cucina: dividere il lavoro moltiplica quanto puoi servire, a patto di organizzare bene chi fa cosa. Più postazioni, più coperti, purché ogni cosa vada al banco giusto.

Voglio trarre la lezione generale, perché è uno dei modi fondamentali in cui l'informatica cresce. C'è un principio profondo, qui: spezzare una cosa grande in pezzi indipendenti, e distribuirli su tanti lavoratori, è uno dei modi fondamentali con cui la tecnologia affronta la scala. Quasi ogni sistema che regge volumi enormi, sotto sotto, fa questo: divide il carico e lo spalma. E il segreto non è solo dividere, ma dividere bene, in modo che i pezzi siano davvero indipendenti e non debbano continuamente coordinarsi. L'arte sta nel trovare i confini giusti, lì dove la divisione non spezza qualcosa che deve restare unito. Dividere per crescere è potente, ma dividere con saggezza è ciò che fa la differenza.

Per oggi ci fermiamo qui. Kafka si organizza in argomenti, registri separati per tipo di evento, così ogni cosa sta al suo posto. E cresce grazie alle partizioni: spezza il registro di un argomento in più pezzi, e li distribuisce su tante macchine, così il carico si spalma e regge torrenti di eventi ben oltre una singola macchina. Con il compromesso onesto che l'ordine è garantito dentro un pezzo, ma non tra pezzi diversi: quindi come dividi conta, come le postazioni di una cucina affollata. La lezione: spezzare una cosa grande in pezzi indipendenti e distribuirli è un modo fondamentale per crescere, e l'arte sta nel dividere bene. Nella prossima puntata vediamo come Kafka fa a non perdere niente: il gruppo di macchine e le copie. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.