Glossario

Un piccolo indice delle parole che torno a usare nelle lezioni. Ogni voce e' una spiegazione di un paragrafo in linguaggio piano. Se un termine compare in una lezione e la lezione non si ferma a definirlo, probabilmente lo trovi qui.

80 voci

Database

ACID Database
Atomicita', Consistenza, Isolamento, Durabilita'. Le quattro garanzie di una transazione relazionale classica: avviene tutta o per niente, lascia il database in uno stato valido, non vede lavori a meta' di altre transazioni e, una volta confermata, sopravvive a un crash.
BASE Database
Basically Available, Soft state, Eventually consistent. La filosofia opposta ad ACID, comune nei database NoSQL distribuiti: il sistema resta disponibile durante le partizioni, lo stato puo' divergere tra repliche per un po' e le letture convergono quando il cluster recupera.
Columnar storage Database
Memorizzare ciascuna colonna di una tabella in modo contiguo su disco invece di ciascuna riga. Paga enormemente per le query analitiche che toccano poche colonne su milioni di righe.
OLAP Database
Online Analytical Processing. Sistemi progettati per macinare scansioni, aggregazioni e join enormi per report e dashboard. Solitamente colonnari, spesso append-only e per design lenti negli aggiornamenti di singole righe.
OLTP Database
Online Transaction Processing. Sistemi che gestiscono molte operazioni piccole e sensibili alla latenza: leggi il saldo del conto, piazza un ordine, aggiorna una riga. Tipicamente orientati alle righe e tarati per la concorrenza.
Polyglot persistence Database
Usare piu' di un tipo di database nello stesso prodotto perche' nessun singolo store si adatta a ogni carico: magari un DB relazionale per gli ordini, una cache key-value per le sessioni, un motore di ricerca per il full-text.
Replication Database
Mantenere piu' di una copia degli stessi dati su macchine diverse. Ti da' durabilita', scalabilita' in lettura e failover; ti costa il mal di testa di tenere le repliche sincronizzate.

Sistemi distribuiti

Bulkhead Sistemi distribuiti
Isolare le risorse (pool di thread, connessioni, code) per dipendenza, cosi' un guasto in una non affoga tutte le altre. Prende il nome dai compartimenti delle navi: una falla allaga uno, non la barca.
CAP theorem Sistemi distribuiti
Il risultato di Brewer: un sistema distribuito con dati condivisi puo' offrire al massimo due tra consistenza, disponibilita' e tolleranza alle partizioni durante una partizione di rete. In pratica le partizioni accadono, quindi stai scegliendo tra consistenza e disponibilita' quando se ne verifica una.
Circuit breaker Sistemi distribuiti
Un wrapper che osserva una chiamata downstream e inizia a fallire velocemente quando il downstream e' malato da un po', invece di accumulare retry destinati a fallire. Permette al sistema di scaricare carico e recuperare invece di propagare i guasti.
Consensus Sistemi distribuiti
Il problema di far accordare un gruppo di nodi inaffidabili su un valore unico o un ordine di eventi. Algoritmi come Paxos e Raft lo risolvono; sono al cuore di ogni sistema che promette consistenza forte.
Event-driven architecture Sistemi distribuiti
Un design in cui i servizi comunicano emettendo e reagendo a eventi su un log condiviso. Disaccoppiato e facile da evolvere, ma si rinuncia a flussi richiesta-risposta chiari in cambio di una coreografia da ricostruire.
Hot key Sistemi distribuiti
Una singola chiave che riceve una quota sproporzionata di traffico in un sistema partizionato. Le hot key vanificano il senso del partizionamento mandando in ginocchio la macchina di uno shard mentre le altre dormono.
Idempotency Sistemi distribuiti
Una proprieta' per cui eseguire la stessa operazione molte volte produce lo stesso risultato che eseguirla una volta sola. Fondamentale in pipeline e API perche' retry, replay e consegne doppie sono la regola, non l'eccezione.
Idempotent Sistemi distribuiti
Un'operazione il cui effetto e' lo stesso indipendentemente da quante volte viene eseguita. La proprieta' piu' utile da progettare in un mondo dove i retry sono inevitabili.
Microservices Sistemi distribuiti
Uno stile architetturale in cui un sistema e' diviso in molti piccoli servizi distribuiti in modo indipendente che dialogano in rete. Compra autonomia dei team e isolamento; paga il costo in overhead operativo e di progettazione.
PACELC Sistemi distribuiti
Un'estensione di CAP: durante una Partizione scegli tra Disponibilita' e Consistenza, altrimenti (in funzionamento normale) scegli tra Latenza e Consistenza. PACELC descrive il compromesso del tuo database sia durante un guasto sia in un martedi' normale.
Partitioning Sistemi distribuiti
Suddividere i dati in blocchi che possono essere archiviati, interrogati o elaborati in modo indipendente. Nei sistemi analitici significa spesso partizionare per data o tenant; nello streaming significa assegnare eventi a un'unita' di parallelismo.
Sharding Sistemi distribuiti
Suddividere un dataset logico tra piu' macchine fisiche, ognuna delle quali conserva solo una parte. Permette al sistema di crescere oltre cio' che una singola macchina puo' contenere, al costo di query cross-shard e dolori di ribilanciamento.
Two-phase commit Sistemi distribuiti
Un protocollo per confermare una transazione attraverso piu' sistemi: prima tutti votano prepare, poi un coordinatore dice a tutti di committare o abortire. Corretto in teoria, doloroso in pratica se il coordinatore muore a meta'.

Streaming

At-least-once Streaming
Una garanzia di consegna in cui ogni evento arriva al consumatore almeno una volta, ma forse di piu'. Piu' economica da costruire rispetto a exactly-once e perfettamente sufficiente se il tuo downstream e' idempotente.
CDC Streaming
Change Data Capture. Un pattern per trasmettere ogni insert, update e delete da un database sorgente come sequenza di eventi che i sistemi downstream possono applicare. Il modo piu' pulito per mantenere data warehouse, indici di ricerca e cache allineati a un OLTP.
Event time Streaming
L'istante in cui un evento e' realmente accaduto nel mondo reale, trasportato dentro il payload dell'evento. Quasi sempre cio' su cui vuoi calcolare, anche se ti costringe a gestire arrivi fuori ordine.
Exactly-once Streaming
Una garanzia di consegna in cui ogni evento viene elaborato una volta e una sola end-to-end. I sistemi reali la ottengono combinando scritture idempotenti, sink transazionali e gestione degli offset, non consegnando letteralmente ogni messaggio una sola volta.
Kappa architecture Streaming
La sorella piu' pulita di Lambda: una sola pipeline streaming fa tutto, e un job 'replay dal log' copre il ruolo batch quando devi ricalcolare la storia. Piu' semplice, ma solo se il tuo stream processor e' abbastanza buono.
Lambda architecture Streaming
Un pattern con due pipeline parallele: uno strato batch lento che ricalcola la verita' da zero e uno strato streaming veloce che serve risultati freschi ma approssimati. Il costo e' mantenere la stessa logica due volte.
Processing time Streaming
L'orario reale in cui un processore di stream vede l'evento. Piu' semplice da ragionare rispetto all'event time, ma produce risultati che dipendono dalla velocita' del sistema e da quanto in ritardo erano gli input.
Replay Streaming
Rileggere eventi dal log durevole e rielaborarli, di solito perche' la logica e' cambiata o il downstream e' andato male. Il replay e' sicuro solo se l'elaborazione e' idempotente e gli effetti collaterali sono limitati.
Watermark Streaming
Un timestamp che segna 'non aspettiamo piu' eventi piu' vecchi di questo' in uno stream. I watermark permettono a un processore di stream di chiudere finestre ed emettere risultati senza aspettare per sempre i ritardatari.

Elaborazione batch

Avro Elaborazione batch
Un formato binario orientato alle righe con uno schema incorporato in ogni file. Progettato per carichi streaming con molte scritture e schemi in evoluzione, dove leggi record interi non singole colonne.
Backfill Elaborazione batch
Rieseguire una pipeline su un intervallo storico per correggere un bug, recuperare da un disservizio o aggiungere una colonna. Dovrebbe essere sicuro farlo in qualsiasi momento, ed e' proprio per questo che si progettano le pipeline come idempotenti.
Broadcast join Elaborazione batch
Un join in cui il lato piccolo viene spedito interamente a ogni executor e il lato grande resta dov'e'. Evita del tutto lo shuffle e trasforma un join lento in una lookup locale veloce, quando un lato sta in memoria.
Bucketing Elaborazione batch
Pre-hashare una tabella su disco in un numero fisso di file in base a una chiave. Due tabelle bucketed con chiavi corrispondenti possono essere joinate senza shuffle, e una tabella bucketed puo' essere filtrata senza scansionare tutto.
ELT Elaborazione batch
Extract, Load, Transform. La variante moderna: scarica i dati grezzi in un warehouse potente, poi trasformali sul posto in SQL. Possibile perche' i warehouse sono diventati abbastanza economici e veloci da fare anche da motore di calcolo.
ETL Elaborazione batch
Extract, Transform, Load. La forma classica di una pipeline dati: estrai dati da una sorgente, li trasformi su un livello di calcolo separato e poi spingi il risultato in una destinazione pronta al consumo.
Lazy evaluation Elaborazione batch
Un modello di esecuzione in cui le trasformazioni vengono registrate come piano ed eseguite solo quando un'azione le forza. Spark lo usa per combinare molti passi in un unico job ottimizzato invece di materializzare ogni intermedio.
Medallion architecture Elaborazione batch
Una struttura a tre livelli per un data lake: bronze per i dati grezzi appena atterrati, silver per quelli puliti e conformi, gold per le aggregazioni pronte per il business. Utile come impalcatura di partenza, non come religione.
ORC Elaborazione batch
Optimized Row Columnar. Un formato di archiviazione colonnare nato nel mondo Hadoop, simile nello spirito a Parquet ma con statistiche integrate piu' forti e migliore pushdown dei predicati. Piu' comune nei vecchi data lake in stile Hive.
Parquet Elaborazione batch
Un formato di archiviazione colonnare per analytics: i dati sono disposti una colonna alla volta, cosi' una query legge solo le colonne che servono. Il formato di file predefinito di quasi tutti i lakehouse moderni.
Shuffle Elaborazione batch
Il passo costoso in cui un job distribuito riorganizza i dati in rete affinche' le righe che devono essere elaborate insieme finiscano sulla stessa macchina. Join, group-by e repartition lo innescano tutti.
Skew Elaborazione batch
Quando una partizione contiene molte piu' righe delle altre, cosi' un singolo executor finisce molto dopo gli altri. La classica causa di un job Spark che mostra 99% di completamento e resta li per un'ora.

Infrastruttura e cloud

Blue-green deploy Infrastruttura e cloud
Un pattern di deploy con due ambienti identici, blue e green. Il traffico va a uno mentre l'altro riceve la nuova versione; girare il load balancer e' il deploy, e tornare indietro e' semplicemente rigirarlo.
Caching Infrastruttura e cloud
Conservare una copia di dati costosi da calcolare piu' vicino al consumatore, cosi' la lettura successiva e' veloce. Facile da aggiungere, difficile da invalidare; la famosa frase sull'invalidazione della cache come uno dei due problemi piu' difficili in CS non e' uno scherzo.
Canary deploy Infrastruttura e cloud
Distribuire una nuova versione prima a una piccola fetta di traffico e osservarne le metriche. Se il canarino sopravvive, allarghi; se muore, fai rollback prima che la maggior parte degli utenti se ne accorga.
Lakehouse Infrastruttura e cloud
Uno strato di storage che mette un formato tabellare transazionale come Delta, Iceberg o Hudi sopra l'object storage economico, cosi' ottieni ACID e time travel da warehouse senza il prezzo da warehouse.
Multi-region Infrastruttura e cloud
Eseguire lo stesso sistema in due o piu' regioni geografiche per resilienza o latenza. Attivo-passivo (una regione serve, l'altra aspetta) oppure attivo-attivo (entrambe servono insieme, con tutta la complessita' di consistenza che implica).
Rate limit Infrastruttura e cloud
Un tetto al numero di richieste che un client puo' inviare per unita' di tempo. Ti protegge da abusi e da un client buggato che decide all'improvviso di fare retry all'infinito.

Observability e affidabilita'

Dashboard Observability e affidabilita'
Una vista curata delle metriche di un servizio: qualche SLI, tassi d'errore, volumi di richieste, dipendenze chiave. Le dashboard buone mostrano la salute, quelle cattive mostrano ogni metrica che hai mai esposto.
Error budget Observability e affidabilita'
Il complemento di un SLO: se punti al 99,9% hai lo 0,1% da spendere in incidenti e lanci rischiosi. Quando il budget e' finito, smetti di pubblicare feature e ripaghi il debito di affidabilita'.
On-call Observability e affidabilita'
Una rotazione in cui gli ingegneri si assumono la responsabilita' di rispondere agli alert di produzione in una finestra definita. La regola d'oro: se l'hai scritto, porti il cercapersone quando si rompe.
Postmortem Observability e affidabilita'
Un report senza colpe dopo un incidente: timeline, causa principale, fattori contribuenti, azioni correttive. Lo scopo e' rendere il sistema piu' sicuro, non trovare qualcuno a cui gridare.
Runbook Observability e affidabilita'
Un documento breve e prescrittivo che dice all'ingegnere on-call esattamente cosa fare quando scatta un certo alert. Piu' suona noioso e da copia-incolla alle 3 di notte, meglio e'.
SLA Observability e affidabilita'
Service Level Agreement. La promessa contrattuale verso un cliente sull'affidabilita', solitamente con soldi attaccati se la manchi. Sempre piu' larga dell'SLO che punti internamente.
SLI Observability e affidabilita'
Service Level Indicator. La misurazione effettiva che alimenta il tuo SLO: una latenza di richiesta, un tasso di successo, una freschezza. La cosa che metti su una dashboard e su cui imposti gli alert.
SLO Observability e affidabilita'
Service Level Objective. L'obiettivo interno di affidabilita' di un servizio, tipo '99,9% delle richieste di lettura sotto i 200 ms su 30 giorni'. La leva con cui guidi davvero il lavoro di engineering.

Finanza e investimenti

Asset allocation Finanza e investimenti
Come dividi il portafoglio tra grandi categorie come azioni, obbligazioni e liquidita'. Decenni di evidenze dicono che questa singola decisione guida la maggior parte del rischio e del rendimento di lungo periodo, molto piu' di quali fondi specifici scegli.
Capital gains tax Finanza e investimenti
Imposta sui guadagni quando vendi un asset per piu' di quanto l'hai pagato. In Italia la maggior parte dei guadagni finanziari e' tassata al 26%, con un'aliquota piu' lieve del 12,5% per i titoli di stato e qualche caso particolare.
Compound interest Finanza e investimenti
Interesse maturato non solo sul capitale iniziale ma anche sugli interessi gia' accumulati. Su decenni e' la differenza tra crescita lineare ed esponenziale, ed e' l'intero motore degli investimenti di lungo periodo.
Diversification Finanza e investimenti
Distribuire i soldi su molti asset, in modo che nessuno da solo possa rovinarti. La diversificazione riduce il rischio senza abbassare il rendimento atteso; e' famosamente chiamata l'unico pasto gratis della finanza.
Dollar-cost averaging Finanza e investimenti
Investire una somma fissa con cadenza regolare a prescindere da cosa fa il mercato. Liscia il prezzo medio di ingresso e, soprattutto, toglie la voglia di fare market timing. In Italia e' esattamente cio' che fa un PAC, Piano di Accumulo Capitale.
Emergency fund Finanza e investimenti
Risparmi liquidi, di solito tre-sei mesi di spese, tenuti in liquidita' o quasi liquidita' per shock imprevisti. Volutamente noiosi: esistono perche' una caldaia rotta o un lavoro perso non ti costringano a vendere investimenti nel peggior momento possibile.
ETF Finanza e investimenti
Exchange-Traded Fund. Un fondo che detiene un paniere di asset (spesso un intero indice) e si scambia in borsa come una singola azione. Economico, trasparente e il mattone di base di un portafoglio sensato.
Expense ratio Finanza e investimenti
Altro nome del TER per fondi domiciliati USA: la percentuale di patrimonio del fondo divorata ogni anno dai costi di gestione. Piu' basso e' quasi sempre meglio.
FIRE Finanza e investimenti
Financial Independence, Retire Early. Un movimento e un problema di matematica: risparmia aggressivamente, investi in fondi indicizzati a basso costo e fermati quando il portafoglio puo' finanziare per sempre la tua spesa. Diversi tier (lean, regular, fat) descrivono lo stile di vita che punti.
Fondo pensione Finanza e investimenti
Veicolo italiano di previdenza complementare. I contributi sono deducibili fino a un tetto annuo, la crescita e' tassata con un'aliquota piu' bassa rispetto agli investimenti ordinari, e le prestazioni possono essere un mix di capitale e rendita.
Inflation Finanza e investimenti
L'aumento generale dei prezzi nel tempo, che significa che lo stesso euro l'anno prossimo compra meno di quest'anno. Un'inflazione moderata e' normale e attesa; il pericolo e' la liquidita' ferma mentre i prezzi continuano a muoversi.
Lump sum Finanza e investimenti
Investire una somma in un colpo solo invece di spalmarla nel tempo. In media vince contro il PAC perche' i mercati salgono piu' spesso di quanto scendano, ma si sente peggio quando il tempismo e' sfortunato.
Nominal return Finanza e investimenti
La crescita percentuale che vedi sull'estratto conto, prima dell'aggiustamento per l'inflazione. Utile per confrontare prodotti nella stessa valuta e nello stesso periodo; ingannevole presa da sola.
Opportunity cost Finanza e investimenti
Il valore della seconda alternativa migliore a cui rinunci facendo una scelta. La liquidita' ferma sul conto corrente non 'costa' nulla di visibile, ma il rendimento che avrebbe potuto guadagnare in un ETF e' il suo costo opportunita'.
Real return Finanza e investimenti
La crescita dei tuoi soldi dopo aver sottratto l'inflazione. L'unico rendimento che conta per la pianificazione di lungo periodo, perche' un 7% nominale in un anno di inflazione al 5% in termini reali e' un errore di arrotondamento.
Rebalancing Finanza e investimenti
Vendere un po' di cio' che e' cresciuto e comprare un po' di cio' che e' rimasto indietro perche' il portafoglio resti vicino alla tua allocazione target. Un'abitudine noiosa che impone in silenzio la disciplina del 'vendi alto, compra basso'.
Safe Withdrawal Rate Finanza e investimenti
La percentuale di portafoglio che puoi prelevare ogni anno, aggiustata per l'inflazione, senza esaurirlo durante una lunga pensione. La famosa 'regola del 4%' viene dai dati USA; per investitori europei un 3%-3,5% e' piu' onesto.
Savings rate Finanza e investimenti
La frazione del tuo reddito netto che non spendi. La leva piu' importante della finanza personale: raddoppiarla puo' grossomodo dimezzare il tempo verso l'indipendenza finanziaria, indipendentemente dai rendimenti del portafoglio.
TER Finanza e investimenti
Total Expense Ratio. La commissione annua di un ETF o fondo, espressa in percentuale del patrimonio. Un TER dell'1% contro uno dello 0,2% sullo stesso rendimento, capitalizzato su 30 anni di carriera, fa una differenza a sei cifre.
TFR Finanza e investimenti
Trattamento di Fine Rapporto. Una quota dello stipendio del lavoratore dipendente che il datore di lavoro trattiene e paga alla fine del rapporto. Puoi lasciarlo in azienda o destinarlo a un fondo pensione, con esiti fiscali molto diversi su decenni.
Volatility Finanza e investimenti
Quanto oscilla il prezzo di un asset, di solito misurato come deviazione standard dei rendimenti. La volatilita' e' rischio per chi tiene poco e rumore per chi tiene a lungo; il trucco e' sapere quale dei due sei.

Machine learning

Cross-validation Machine learning
Dividere i dati di addestramento in fold, allenare su alcuni e testare sui restanti, poi ruotare. Fornisce una stima piu' onesta delle prestazioni del modello rispetto a una singola divisione train/test.
Feature engineering Machine learning
Trasformare i dati grezzi negli input che un modello puo' davvero usare: rapporti, date scomposte, categorie codificate come numeri. Spesso la parte che decide se un modello e' buono, a prescindere da quanto sofisticato sia l'algoritmo.
Overfitting Machine learning
Quando un modello memorizza i dati di addestramento cosi' bene da fallire su qualsiasi cosa nuova. Come uno studente che recita ogni esame passato ma viene bocciato a una domanda inedita.
Train/test split Machine learning
Tenere da parte una porzione dei dati senza mai mostrarla al modello durante l'addestramento, cosi' da verificare dopo come si comporta su esempi davvero nuovi. La difesa minima per non prendersi in giro.
Cerca