
Fondamenti di stream processing
Introduzione allo stream processing: differenza tra batch e real-time, architetture e pattern fondamentali.
Cosa imparerai
- Comprendere il problema analitico e il contesto decisionale
- Applicare esempi, metriche e controlli a casi reali
Collegamenti
Fondamenti di stream processing
Un prodotto digitale genera eventi ogni secondo: click, pagamenti, errori, cambi di stato. Il problema non è solo elaborarli in fretta. È decidere quali eventi richiedono una reazione immediata, quali possono aspettare il batch e quali garanzie servono perché il risultato sia credibile. Lo stream processing parte da qui, dalla distinzione tra velocità utile e fretta costosa.
Perché la velocità non basta
Conoscere lo stream processing in astratto serve a poco. Il lavoro vero comincia quando il team ha dati incompleti, metriche ambigue o vincoli tecnici che rendono fragile la lettura del fenomeno. Devi separare il segnale dal rumore, scegliere una baseline e dire quale azione diventa difendibile dopo l’analisi.
La scelta architetturale di fondo riguarda tre coppie: event time o processing time, finestra tumbling o sliding, at-least-once o exactly-once. Ogni concetto va collegato a una domanda operativa. Quanto ritardo posso tollerare? Quanto errore posso accettare? Quale costo sono disposto a pagare per correggerlo?
Dati a riposo e dati in movimento
Il confronto tra elaborazione batch e stream processing viene spesso ridotto a una questione di velocità, ma è una semplificazione che ne nasconde la portata. La distinzione fondamentale non è quantitativa, minuti contro millisecondi. È qualitativa e riguarda la natura stessa del dato.
L’elaborazione batch opera su dati a riposo (data at rest): un insieme finito, completo e delimitato. Pensa a un censimento nazionale. Raccogliamo dati per mesi, li immagazziniamo, e solo alla fine li analizziamo nella loro interezza per produrre un report. Il dataset è statico, possiamo rileggerlo più volte e i risultati sono deterministici. Questo modello funziona bene per la fatturazione mensile, il training di modelli su dati storici o i report finanziari trimestrali.
Lo stream processing, al contrario, opera su dati in movimento (data in motion): un flusso di eventi potenzialmente infinito, incompleto e non ordinato. L’analogia più calzante è il controllore del traffico aereo. Non può attendere che tutti gli aerei della giornata siano atterrati per decidere le rotte; prende decisioni immediate su un flusso continuo di informazioni parziali, posizione, velocità, meteo. Ogni evento, una transazione, un click su un sito, una lettura da un sensore IoT, viene processato appena arriva, individualmente o in piccole finestre temporali. Cambia la mentalità: non si interroga più un database, si reagisce a un flusso.
Come formalizzare la scelta
Conviene leggere la lezione come una relazione tra decisione, evidenza e rischio. La tabella sotto fissa gli elementi minimi da dichiarare prima di toccare il codice.
| Elemento | Definizione operativa | Controllo minimo |
|---|---|---|
| Unita di analisi | Oggetto su cui misuri il fenomeno | Utente, account, evento, ordine o periodo |
| Variabile osservata | Segnale che rappresenta il comportamento | Definizione stabile e tracciabile |
| Baseline | Stato contro cui confronti il segnale | Periodo, segmento, controllo o benchmark |
| Soglia decisionale | Punto in cui cambia l’azione | Criterio scritto prima della lettura |
| Rischio residuo | Errore che puo restare anche dopo l’analisi | Sensitivity check o revisione qualitativa |
Una formalizzazione non complica la lezione, rende visibili le assunzioni. Così uno stakeholder può discutere il criterio decisionale invece di fidarsi del risultato per autorità.
Esempio: leggere un segnale prima di reagire
Immagina un team che usa questi concetti per decidere se cambiare una pipeline, una metrica, un investimento o una dashboard. La domanda non è “qual è la definizione corretta”, ma “quale scelta diventa meno rischiosa se questa analisi è fatta bene”.
| Situazione | Lettura prudente | Decisione |
|---|---|---|
| Il dato migliora ma la baseline e debole | Il segnale potrebbe essere reale o dipendere dal campione | Rafforzare il confronto prima di scalare |
| La metrica cambia in un solo segmento | L’effetto medio nasconde eterogeneita | Separare coorti o casi d’uso |
| Il costo operativo aumenta | Il beneficio va valutato sul margine | Applicare una soglia economica esplicita |
| Il sistema produce numeri incoerenti | La fiducia nel dato e parte della decisione | Correggere ownership e controlli |
Il valore non sta nel singolo numero, ma nella catena che collega contesto, misura e decisione.
Lab
Tre livelli, dal più semplice al più impegnativo.
Al livello base, scrivi in cinque righe quale decisione concreta dovrebbe migliorare grazie allo stream processing. Indica metrica, unità di analisi, baseline e rischio principale. Se non riesci a nominare la decisione, la lezione è ancora troppo astratta.
Al livello intermedio, costruisci una tabella con quattro colonne: segnale osservato, interpretazione prudente, controllo necessario, azione consigliata. Usa almeno un caso in cui il segnale non basta per decidere.
Al livello research-grade, trasforma l’esercizio in un memo decisionale che includa assunzioni, criteri di esclusione, soglia di intervento, sensitivity check e una proposta di monitoraggio dopo la decisione.
Per i materiali, usa un export reale, una tabella sintetica, una dashboard interna o un notebook di studio. Il dataset deve contenere almeno una dimensione di segmento, una metrica osservabile e un periodo o baseline di confronto.
Errore tipico da evitare
L’errore tipico è usare lo stream processing come etichetta tecnica invece che come criterio di scelta. Succede quando il team presenta un numero senza dire quale decisione cambia, quale baseline lo rende interpretabile e quale rischio resta aperto. In quel caso il dato sembra preciso, ma non guida l’azione.
Checkpoint
- Quale decisione concreta dovrebbe migliorare questa lezione?
- Quale unità di analisi rende il problema misurabile?
- Quale baseline useresti per evitare una lettura isolata?
- Quale assunzione, se falsa, cambierebbe la conclusione?
- Quale controllo presenteresti prima di raccomandare un’azione?
Riepilogo
Lo stream processing è utile quando riduce l’incertezza su una scelta reale. La forma corretta della lezione è semplice: decisione, segnale, baseline, rischio e azione. Tutto il resto serve solo se rende più affidabile uno di questi passaggi. Se al termine non sai indicare quale evento richiede una reazione immediata e quale può aspettare il batch, conviene rileggere la distinzione tra dati a riposo e dati in movimento.
Percorso collegato
Lezioni da leggere insieme
Questi collegamenti portano la lezione dentro il resto del corso: basi da riprendere, passaggi successivi e connessioni tematiche tra moduli.