Go to main content
Stream Processing - official lesson image on GinnyTech, created by AD

Fundamentals of stream processing

Introduction to stream processing: difference between batch and real-time, fundamental architectures and patterns.

AD
Created byAndrii Dyshkantiuk
Lesson 120 / 236Level: AdvancedDuration: 22 min

What you will learn

  • Understand the analytical problem and the decision-making context
  • Apply examples, metrics, and controls to real cases

Links

Direct entry into the module.

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.

ElementOperational DefinitionControllo minimo
Unit of analysisOggetto su cui misuri il fenomenoUtente, account, evento, ordine o periodo
Variabile osservataSegnale che rappresenta il comportamentoDefinizione stabile e tracciabile
BaselineStato contro cui confronti il segnalePeriodo, segmento, controllo o benchmark
Soglia decisionalePunto in cui cambia l’azioneCriterio scritto prima della lettura
Rischio residuoErrore che puo restare anche dopo l’analisiSensitivity 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”.

SituationCautious interpretationDecision
Il dato migliora ma la baseline e deboleIl segnale potrebbe essere reale o dipendere dal campioneRafforzare il confronto prima di scalare
La metrica cambia in un solo segmentoAverage effect hides heterogeneitySeparate cohorts or use cases
Il costo operativo aumentaIl beneficio va valutato sul margineApplicare una soglia economica esplicita
Il sistema produce numeri incoerentiLa fiducia nel dato e parte della decisioneCorreggere 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

  1. Which concrete decision should this lesson improve?
  2. Which unit of analysis makes the problem measurable?
  3. Quale baseline useresti per evitare una lettura isolata?
  4. Quale assunzione, se falsa, cambierebbe la conclusione?
  5. Quale controllo presenteresti prima di raccomandare un’azione?

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.