
Fundamentals of stream processing
Introduction to stream processing: difference between batch and real-time, fundamental architectures and patterns.
What you will learn
- Understand the analytical problem and the decision-making context
- Apply examples, metrics, and controls to real cases
Links
Fundamentals of 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 data at rest (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.
Stream processing, on the other hand, operates on data in motion (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.
| Element | Operational Definition | Controllo minimo |
|---|---|---|
| Unit of analysis | 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”.
| Situation | Cautious interpretation | Decision |
|---|---|---|
| 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 | Average effect hides heterogeneity | Separate cohorts or use cases |
| 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.
Typical mistake to avoid
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
- Which concrete decision should this lesson improve?
- Which unit of analysis makes the problem measurable?
- Quale baseline useresti per evitare una lettura isolata?
- Quale assunzione, se falsa, cambierebbe la conclusione?
- Quale controllo presenteresti prima di raccomandare un’azione?
Summary
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.
Related Path
Lessons to read together
Questi collegamenti portano la lezione dentro il resto del corso: basi da riprendere, passaggi successivi e connessioni tematiche tra moduli.