In Breve (TL;DR)
Il modello CRUD risulta ormai obsoleto per i sistemi bancari critici, che richiedono la conservazione della storia completa per garantire la compliance normativa.
L’event sourcing registra ogni modifica come un evento immutabile, permettendo di ricostruire matematicamente lo stato attuale delle pratiche tramite il pattern CQRS.
Questa architettura garantisce un audit trail nativo e indelebile by design, risolvendo i problemi di tracciabilità e offrendo potenti strumenti di debugging storico.
Il diavolo è nei dettagli. 👇 Continua a leggere per scoprire i passaggi critici e i consigli pratici per non sbagliare.
Nel panorama Fintech del 2026, la gestione dei dati non riguarda più solo la conservazione dello stato attuale, ma la capacità di dimostrare matematicamente come si è arrivati a quello stato. L’event sourcing bancario rappresenta il cambio di paradigma necessario per rispondere alle stringenti normative di compliance (come la PSD3 e le evoluzioni di Basilea) e alle esigenze di trasparenza operativa. In questa guida tecnica, esploreremo perché l’architettura CRUD (Create, Read, Update, Delete) è ormai obsoleta per i CRM finanziari critici e come implementare un sistema basato su eventi immutabili per la gestione delle pratiche di mutuo.

Il Problema del CRUD nel Settore Finanziario
Per decenni, lo sviluppo software si è basato sul modello CRUD. In un database relazionale classico, quando una pratica di mutuo passa da “In Istruttoria” a “Deliberata”, eseguiamo un comando UPDATE che sovrascrive il valore precedente. Sebbene efficiente per lo storage, questo approccio comporta una perdita di informazioni critica: si perde la storia.
In un contesto bancario, sovrascrivere i dati è un rischio inaccettabile. Per garantire l’audit trail, gli sviluppatori spesso ricorrono a tabelle di log separate o trigger di database complessi. Tuttavia, questo approccio presenta due difetti fatali:
- Disallineamento: Il log è un effetto collaterale, non la fonte di verità. Se il log fallisce ma l’update riesce, si ha una corruzione dell’audit.
- Mancanza di contesto: Sappiamo che il dato è cambiato, ma spesso perdiamo il “perché” (l’intento di business).
Event Sourcing: La Pratica come Storia, non come Stato

L’event sourcing bancario inverte questo modello. Invece di memorizzare lo stato corrente di una pratica di mutuo, memorizziamo la sequenza di eventi che hanno portato a tale stato. Il database non contiene più una riga modificabile, ma un append-only log (registro di sola aggiunta) immutabile.
Secondo i principi definiti da esperti come Martin Fowler, lo stato corrente dell’applicazione è puramente una derivazione matematica: è la somma di tutti gli eventi passati riprodotti in sequenza.
Modellazione del Dominio: Dagli Oggetti agli Eventi
Immaginiamo il ciclo di vita di un mutuo. In un sistema CRUD avremmo una tabella Pratiche. In Event Sourcing, definiamo eventi di dominio precisi:
PraticaMutuoCreata(Contiene ID cliente, importo richiesto, data)DocumentazioneRedditualeCaricata(Contiene riferimenti ai PDF, metadati)ScoringCreditizioCalcolato(Contiene il punteggio CRIF/Centrale Rischi al momento del calcolo)TassoInteresseBloccato(Contiene il tasso IRS del giorno)DeliberaEmessa(Contiene l’ID del deliberante)
Ogni evento è un fatto storico immutabile. Non può essere cancellato o modificato, solo compensato da un evento successivo (es. DeliberaAnnullata).
Architettura di Riferimento: CQRS e Streaming
L’implementazione di un sistema di event sourcing bancario richiede quasi sempre l’adozione del pattern CQRS (Command Query Responsibility Segregation). Poiché leggere una sequenza di 100 eventi per ricostruire lo stato di una pratica ogni volta che un operatore apre la dashboard è inefficiente, separiamo la scrittura dalla lettura.
1. Il Write Side (Command)
Il cuore del sistema è l’Event Store. Tecnologie come Apache Kafka o Amazon Kinesis sono ideali per questo scopo grazie alla loro natura di log distribuito e alla persistenza durevole.
Quando un agente CRM clicca su “Approva Reddito”, il sistema:
- Valida il comando rispetto allo stato attuale (ricostruito in memoria).
- Genera l’evento
RedditoVerificato. - Scrive l’evento su un topic Kafka (es.
mutui-events-v1).
2. Il Read Side (Query) – Le Proiezioni
Per visualizzare i dati nel CRM, utilizziamo dei “Consumer” che ascoltano il topic Kafka e aggiornano database ottimizzati per la lettura (Proiezioni). Possiamo avere diverse proiezioni per lo stesso flusso di dati:
- Proiezione Operativa (SQL/NoSQL): Una tabella
PraticheAttivesu PostgreSQL o MongoDB che contiene lo stato corrente per la UI dell’agente. - Proiezione Analitica (Elasticsearch): Un indice per permettere al team marketing di cercare “tutte le pratiche rifiutate per reddito insufficiente nell’ultimo mese”.
- Proiezione Audit (Cold Storage): Archiviazione su S3/Glacier per compliance a lungo termine.
Vantaggi Critici per il Fintech
Audit Trail Nativo e “By Design”
Nell’event sourcing, l’audit trail non è una funzionalità aggiuntiva: è il database stesso. Non è possibile modificare lo stato senza lasciare una traccia indelebile. Questo soddisfa nativamente i requisiti di non ripudio richiesti dagli organi di vigilanza.
Time-Travel Debugging
Questa è forse la funzionalità più potente per gli sviluppatori e gli auditor. Immaginate che un cliente contesti un tasso di interesse applicato sei mesi fa. In un sistema CRUD, vedreste solo il tasso attuale. Con l’event sourcing, potete:
- Prendere l’ID della pratica.
- Riprodurre gli eventi da 0 fino alla data esatta della contestazione (es. 11/01/2025 ore 14:30).
- Vedere esattamente lo stato del sistema, i dati di input e le regole di business attive in quel preciso istante.
Questo permette di rispondere a domande come: “Perché il sistema ha rifiutato la pratica quel giorno?” ricostruendo il contesto esatto, inclusi eventuali bug presenti nel codice in quella data passata.
Implementazione Tecnica: Snippet di un Evento
Ecco come potrebbe apparire un evento JSON strutturato per un sistema bancario:
{
"eventId": "550e8400-e29b-41d4-a716-446655440000",
"eventType": "RiskAssessmentCompleted",
"aggregateId": "MUTUO-2026-8899",
"timestamp": "2026-01-11T10:15:30Z",
"version": 1,
"metadata": {
"userId": "agente_rossi",
"ipAddress": "192.168.1.50",
"correlationId": "req-123-abc"
},
"payload": {
"riskScore": "LOW",
"maxLTV": 0.80,
"interestRateSpread": 1.25,
"rulesVersion": "v2025.12"
}
}
Notate il campo rulesVersion nel payload: storicizzare anche la versione delle regole di business utilizzate è fondamentale per giustificare le decisioni automatiche in sede di audit.
Sfide e Considerazioni Finali
Adottare l’event sourcing bancario non è privo di costi. La complessità architetturale aumenta e richiede una gestione attenta di:
- Schema Evolution: Come gestire eventi creati 5 anni fa con una struttura diversa da quella attuale? (Soluzione: Upcasters).
- Snapshotting: Per pratiche con migliaia di eventi, riprodurre tutto da zero è lento. Si creano degli “snapshot” periodici dello stato per velocizzare il caricamento.
- GDPR e Diritto all’Oblio: Cancellare dati in un log immutabile è complesso. Spesso si ricorre alla tecnica del “Crypto-shredding” (cifrare i dati sensibili e cancellare la chiave di decifrazione).
Nonostante queste sfide, per i sistemi core banking e i CRM finanziari moderni, i benefici in termini di sicurezza, tracciabilità e resilienza superano di gran lunga i costi di implementazione. Passare al modello a eventi significa smettere di perdere dati e iniziare a costruire un patrimonio informativo storico di inestimabile valore.
Domande frequenti

L’event sourcing bancario è un paradigma architetturale che memorizza i dati come una sequenza immutabile di eventi storici anziché sovrascrivere lo stato attuale. Questo approccio è cruciale nel fintech moderno perché garantisce una trasparenza totale e permette di ricostruire matematicamente ogni passaggio di una pratica, rispondendo perfettamente ai requisiti normativi come la PSD3 e Basilea.
L’utilizzo del modello CRUD nei sistemi bancari è rischioso perché l’operazione di aggiornamento sovrascrive i dati precedenti, cancellando la storia e l’intento dietro ogni modifica. Questo comporta la perdita di informazioni critiche per l’audit trail e crea potenziali disallineamenti tra il database principale e i log di sistema, compromettendo la sicurezza dei dati finanziari.
Il pattern CQRS separa nettamente le operazioni di scrittura da quelle di lettura per ottimizzare le prestazioni del CRM. Nel contesto bancario, gli eventi vengono scritti su un registro distribuito ad alta affidabilità come Apache Kafka, mentre le informazioni vengono lette da proiezioni dedicate su database veloci, permettendo agli operatori di visualizzare lo stato delle pratiche in tempo reale senza rallentamenti.
Con l’event sourcing, l’audit trail non è una funzionalità accessoria ma costituisce la struttura stessa del database. Poiché ogni azione è registrata come un evento immutabile che non può essere modificato o cancellato, il sistema offre nativamente la prova di non ripudio e la tracciabilità completa richiesta dagli organi di vigilanza per ogni decisione operativa.
Il Time-Travel Debugging è una potente funzionalità che permette di riprodurre la sequenza degli eventi fino a un preciso istante nel passato. Questo consente alle banche di ricostruire esattamente il contesto, i dati e le regole di business attive nel momento in cui è stata presa una decisione, fornendo risposte precise in caso di contestazioni su tassi o delibere avvenute mesi prima.
Per conciliare l’immutabilità del registro eventi con il diritto all’oblio del GDPR, si adotta spesso la tecnica del crypto-shredding. I dati sensibili vengono salvati in forma cifrata e, in caso di richiesta di cancellazione, viene eliminata definitivamente solo la chiave di decifrazione, rendendo le informazioni storiche illeggibili senza dover alterare la sequenza fisica del log.
Fonti e Approfondimenti
- Commissione Europea – Quadro normativo sui servizi di pagamento (verso la PSD3)
- Bank for International Settlements – Il framework di Basilea per la vigilanza bancaria
- European Banking Authority – Linee guida sulla gestione dei rischi ICT e di sicurezza
- Wikipedia – Definizione tecnica e principi dell’Event Sourcing
- Banca d’Italia – Normativa di Vigilanza per il sistema bancario e finanziario

Hai trovato utile questo articolo? C'è un altro argomento che vorresti vedermi affrontare?
Scrivilo nei commenti qui sotto! Prendo ispirazione direttamente dai vostri suggerimenti.