Streaming data ingestion, dal modello batch al real-time

L'architettura software tradizionale nei financial service utilizza processi batch per la gestione dei dati, ma la necessità di freschezza del dato spinge verso lo streaming in tempo reale.
In questo articolo mostriamo use case di Offloading e Data Integration in near-real time, per ridurre costi e migliorare l'accesso ai dati.

Contesto

Nella nostra esperienza, le componenti core dei sistemi informativi finanziari si appoggiano a sistemi legacy, in una architettura concepita con una componente “diurna” e una componente batch “notturna” in cui i dati inseriti durante la giornata vengono consolidati. Durante questa fase di consolidamento la piattaforma è indisponibile.

In questo tipo di architettura non è possibile utilizzare il sistema legacy come base dati per erogare servizi ad applicazioni web e mobile che possono essere utilizzate in continuità. Nasce perciò l’esigenza di “spostare” i dati su una infrastruttura abilitante al loro utilizzo 24/7 senza sacrificare la freschezza e la qualità del dato.


Lo streaming in soccorso

Una delle tecniche classiche per allineare sistemi differenti è l’utilizzo di flussi batch, ovvero informazioni consolidate che transitano tra i diversi sistemi in una determinata fascia oraria.

Questo tipo di alimentazione introduce un delta temporale tra il sistema alimentante e il sistema alimentato perché le informazioni presenti nei flussi rappresentano la fotografia del sistema alimentante a fine giornata.

Le tempistiche di produzione, caricamento ed elaborazione dei flussi batch, così come la necessità di consolidamento, solitamente richiedono molte risorse (sia lato alimentante che alimentato) rendendo difficoltoso effettuare più allineamenti durante il giorno.

Soluzione

Per ovviare a tale limite e supportare esigenze di business che richiedono la tempestività dell’informazione, viene in nostro soccorso la tecnica dello streaming, cioè catturare l’informazione in tempo reale dai sistemi sorgenti e propagarla verso i sistemi target.

Use case

Nei progetti che sviluppiamo per i nostri clienti, lo stato dell’arte dell’architettura prevede dei sistemi legacy basati solitamente su Mainframe o database Oracle.

La tecnica da noi utilizzata per abilitare lo streaming dei dati è l’adozione di un sistema di Change Data Capture (il tool di riferimento per il mercato è Oracle Golden Gate) che si occupa di raccogliere le operazioni effettuate sui record del sistema sorgente e ne consente la replica in tempo reale verso un sistema target abilitante alle soluzioni di business più moderne.

Il target di un sistema CDC è una piattaforma di event-streaming composta da topic (solitamente realizzati con Apache Kafka), in cui gli eventi vengono gestiti con alto throughput e affidabilità in termini di consistenza e ordinamento temporale del dato.

Tramite uno strumento di streaming process come Apache Flink i dati presenti sui topic sono elaborati in near-real time e utilizzati dai sistemi target secondo le logiche definite per lo specifico use-case. Progetti classici che utilizzano il paradigma sopra descritto sono il Data Offloading e la Data Integration in near-real time.