Real-time Data Streaming nella GDO

data streaming real time

In questo articolo approfondiremo un caso d’uso concreto nel settore GDO, esplorando l’architettura hub-and-spoke che utilizza Kafka per garantire resilienza locale e visibilità globale, abilitando flussi di dati bidirezionali che spaziano dalla gestione degli scontrini all’aggiornamento dinamico delle promozioni.

L’Importanza Strategica dei Dati nella GDO

Nell’era digitale, la capacità di elaborare e agire sui dati in tempo reale rappresenta una necessità strategica fondamentale. 

Nella GDO, i dati rappresentano una leva strategica cruciale per i leader che mirano a ottimizzare l’efficienza operativa e a reinventare l’esperienza d’acquisto. Il settore dipende infatti intrinsecamente dalla gestione efficiente delle informazioni: i dati sono essenziali per supportare le decisioni commerciali e per fare previsioni di domanda più accurate. Una conoscenza approfondita del cliente, derivante dall’analisi dei dati, consente di personalizzare le offerte e di fornire un’esperienza d’acquisto migliore. Inoltre, l’accesso tempestivo ai dati abilita tutta una serie di innovazioni nei servizi e nell’esperienza d’acquisto che prima non erano possibili.

Tuttavia, il problema cruciale che emerge è che questi dati sono spesso frammentati e sparsi in sistemi eterogenei. Ed è proprio qui che entra in gioco Apache Kafka, il cui primo ruolo fondamentale è quello di trasporto. Kafka è infatti progettato per spostare i dati da dove risiedono a dove possono essere utilizzati. Una volta introdotto Kafka, è quindi possibile sfruttare pienamente il real-time, che offre un vantaggio competitivo significativo grazie alla capacità di reagire velocemente alle informazioni e ai dati.


La Sfida Operativa della Grande Distribuzione

Per una grande azienda che opera nel mondo della GDO, l’architettura dei dati non può prescindere dal superare tre principi operativi fondamentali e spesso contrastanti:

1. Resilienza locale: i singoli negozi devono mantenere la piena operatività indipendentemente dallo stato della connettività di rete o di Internet. Se la rete crolla, le operazioni essenziali, come l’emissione degli scontrini e la gestione del punto vendita, non devono essere interrotte.

2. Visibilità globale: la sede centrale (HQ) dell’azienda necessita di accedere il prima possibile a tutti i dati emessi dai sistemi periferici (i negozi). Questa visibilità in tempo reale è cruciale per i processi decisionali e di gestione centrale.

3. Sincronizzazione bidirezionale: è indispensabile garantire che le operazioni e i dati generati localmente fluiscano verso la sede centrale, e allo stesso tempo, che le decisioni, le configurazioni o gli aggiornamenti generati centralmente fluiscano in modo rapido e affidabile verso i negozi, mantenendo l’autonomia delle parti.


Architettura del Sistema

Per rispondere a questa triplice sfida, l’architettura proposta si basa su un modello hub-and-spoke che sfrutta appieno le capacità di Apache Kafka e della Confluent Platform.

  1. Sede centrale (Hub): Integra la Confluent Platform ed è responsabile del processamento centrale di tutti i dati aggregati.
  2. Sedi locali (Spokes): Ciascun punto vendita ospita un cluster Kafka locale. Questi cluster locali sono la chiave per garantire la resilienza, in quanto permettono ai negozi di continuare a funzionare in isolamento, anche in assenza di connessione con la sede centrale.
  3. Sincronizzazione (Replicator): La sincronizzazione bidirezionale dei dati tra il cluster centrale e i cluster locali avviene grazie a Replicator. Questo è fondamentale perché assicura che, in caso di partizione di rete o crollo della connettività, riprenda la sincronizzazione dei dati appena possibile.

Questa configurazione garantisce che i negozi rimangano operativi anche offline, soddisfacendo il principio di resilienza locale.


Flussi di dati nella GDO:

All’interno del settore della GDO, numerosi sono i flussi di dati critici, la cui corretta gestione e ottimizzazione può portare a notevoli vantaggi:

Flusso dati in entrata: dal Negozio alla Sede Centrale

Quando un cliente finalizza la spesa, viene generato un dato contenente una ricchezza di informazioni. Le casse agiscono come Producer Kafka, pubblicando direttamente questo dato sul Kafka locale del negozio. Successivamente, il Replicator si occupa di inviare i dati dal Kafka locale alla sede centrale.

Una volta che la sede centrale riceve il dato dello scontrino, si innesca una serie di processi a partire dalla validazione delle informazioni sia a livello semantico che sintattico. In seguito alla validazione, il dato viene scritto su un altro topic centrale, che diventa la sorgente e il trigger fondamentale per tantissimi processi che partono all’interno dell’HQ. Il dato consolidato funge da Data Contract rispetto allo scontrino, e chiunque nel sistema può sottoscriverlo per le proprie logiche.

Il dato, una volta centralizzato, può essere sfruttato in vari modi, inclusi:

  • Fatturazione e approvvigionamento merci 
  • Supply chain ottimizzata
  • Analisi su prodotti e consumi futuri
  • Analisi ed elaborazione di modelli predittivi

Flusso dati in uscita: dalla Sede Centrale al Negozio

L’architettura implementata non è solo unidirezionale, ma permette anche la comunicazione dalla sede centrale verso il negozio. Un esempio fondamentale è il flusso delle promozioni.

Le promozioni vengono infatti generate dalla sede centrale: questo processo complesso aggrega diversi dati, inclusi quelli provenienti da Kafka, da tabelle relazionali sui prodotti e sui brand, e da informazioni sulle promozioni locali. 

Una volta che le informazioni sulla promozione sono presenti nel cluster Kafka locale, le casse si connettono al cluster e consumano questi dati per applicare le regole corrette al momento dell’acquisto.

Questo flusso abilita potenzialmente una comunicazione near real-time tra la sede centrale e le casse. Tuttavia, è fondamentale considerare i limiti tecnologici dell’hardware locale. Per questo motivo, l’aggiornamento delle promozioni viene tipicamente gestito in parallelo con il business, e le emissioni avvengono durante la fase notturna. Durante la notte, le casse, essendo scariche dal lavoro di business, hanno infatti il tempo necessario per processare e aggiornare le regole.


I Vantaggi Oltre la Tecnologia: Agilità, Sinergia e Visione Organizzativa

L’introduzione di un’architettura data streaming basata su Kafka non offre solo benefici in ambito puramente tecnico (trasporto, velocità, ecc.), ma porta con sé vantaggi organizzativi e di business profondi.

Spesso, infatti,  l’attenzione si concentra sulle capacità tecniche di Kafka all’interno dell’architettura software; tuttavia, il vero valore risiede nei benefici organizzativi che abilita. 

Innanzitutto, l’architettura implementata è altamente agile e scalabile. In ottica di crescita, l’aggiunta di nuovi punti vendita è relativamente semplice: basta replicare l’architettura, installando un nuovo cluster Kafka locale e il Replicator. Ogni nuovo negozio, con le sue casse connesse al cluster locale, viene integrato senza problemi nel sistema centrale. Anche all’interno del singolo punto vendita, la presenza di un cluster Kafka locale permette di scalare introducendo nuovi consumer o applicazioni che lavorano sui dati locali, semplicemente dimensionando il cluster in modo opportuno.

Inoltre, l’architettura garantisce un’ottima visibilità dei dati in near real-time. Questa tempestività è preziosa per gli analytics e per le logiche di calcolo degli approvvigionamenti.

Infine, un aspetto meno tecnico, ma molto apprezzato dai Software Engineer, è che Kafka agisce come un enabler. Una volta introdotto nel sistema, inizia a far emergere use case di business che prima non erano stati contemplati. La disponibilità immediata e strutturata dei dati facilita la mutua scoperta con i product owner e i business owner su nuove opportunità e funzionalità realizzabili.


Evoluzioni future

Un’architettura di questo tipo, basata sul data streaming, non è statica, anzi: sono possibili integrazioni per ottenere  diverse  funzionalità basate sui dati raccolti.

  • Fidelizzazione del cliente tramite AI: Un’area di sviluppo cruciale è la fidelizzazione del cliente. L’obiettivo è iniziare a ragionare in base ai comportamenti e alle abitudini di spesa del cliente; questo permette di offrire promozioni ad hoc e logiche particolari che invogliano il cliente a tornare e acquistare. Queste logiche si sposano perfettamente con l’Intelligenza Artificiale per elaborare i dati dei clienti, al fine di estrarre valore e trovare spunti di riflessione per il business.
  • Migrazione da Replicator a Flink: Un’evoluzione tecnica significativa in fase di studio è la migrazione di alcune funzionalità di sincronizzazione da Replicator a Flink. Replicator è uno strumento efficace che svolge un lavoro preciso: copiare i dati da un cluster all’altro. Flink, tuttavia, apre a possibilità diverse, in quanto è uno strumento di stream processing.
  • Miglioramento della sincronizzazione (Filtering): L’utilizzo di Flink consente inoltre di applicare un processamento sui dati in streaming. Ad esempio, potremmo essere interessati a migliorare la sincronizzazione inviando alla sede centrale solo un sottoinsieme di dati essenziali, evitando di caricare l’infrastruttura centrale con una quantità di dati che non è necessario visualizzare e che può impattare sui costi. 
  • Edge Computing: L’abilità di Flink di eseguire stream processing anche sulla parte Edge (cioè sul singolo negozio) abilita il concetto di Edge Computing. Ciò permette di fornire direttamente informazioni al negozio e di abilitare una serie di logiche locali anche in caso di prolungata mancata connessione con la sede centrale.


Conclusioni

L’implementazione di un’architettura event-driven basata sulla Confluent Platform e Apache Kafka risolve alcune delle principali sfide storiche della GDO – incluso il bilanciare la resilienza locale con la visibilità globale – e abilita una potente sincronizzazione bidirezionale dei dati.

in questo use-case, abbiamo visto come questa architettura supporti processi aziendali critici, dalla fatturazione immediata all’approvvigionamento merci, garantendo che anche in caso di isolamento (se il dato alla sede centrale non arriva), il negozio mantenga la piena capacità operativa. L’ambiente è agile e pronto per scalare, e l’approccio data streaming offre una sinergia unica, dove un singolo evento (lo scontrino) alimenta molteplici processi aziendali.

Bitrock, in qualità di società di consulenza specializzata in high-end technology e leader in ambiti come DevOps, Kafka, Confluent e architetture event-driven, supporta i propri clienti nella progettazione e nello sviluppo di soluzioni event-driven e data streaming basate sull’AI che superano le sfide operative complesse. 

Contatta il nostro team di professionisti per una consulenza dedicata.


Autori: Daniele Bonelli e Simone Esposito, Team Lead e Software Engineer @ Bitrock

Vuoi saperne di più sui nostri servizi? Compila il modulo e fissa un incontro con il nostro team!