Architettura del flusso di dati
1) Assegnazione e principi
Obiettivi: fornire dati corretti, tempestivi e complessi per analisi, report, antifrode, personalizzazione e ML.
Principi:- Data as a Product: proprietari chiari, contratti, SLO e versioning.
- Schema-first: schemi obbligatori; evoluzione secondo le regole.
- Privacy-by-Design - Minimizza PII, alias, controllo di accesso.
- Osservabilità-by-Default - Ricalco, metriche, lineage, profili di qualità.
- Cost-aware: tiered-storage, semilibertà degli eventi rumorosi, compressione.
2) Paesaggio di fonti ed eventi
Transazioni: depositi/conclusioni, tassi/rimborsi, bonus, marceback.
Utenti: sessioni, clic, conversioni, limiti RG, stati KYC.
Applicazioni operative, metriche di prestazioni, alert.
Provider: PSP/KYC/sanzioni/giochi (aggregatori).
Cataloghi dei giochi, manuali dei paesi/valute, tariffe/tasse.
json
{
"event_time":"2025-10-31T19:20:11Z",
"event_type":"payment. deposit",
"schema_version":"1. 3. 0",
"user":{"id":"U-123","country":"EE","age_band":"18-24"},
"payment":{"amount":200. 00,"currency":"EUR","method":"card","psp_ref":"PSP-222"},
"ctx":{"ip":"198. 51. 100. 10","session_id":"s-2233","trace_id":"f4c2..."}
}
3) Architettura di riferimento (high-level)
1. Ingest livello
Gateway (HTTP/gRPC), connettori CDC (OLTP), code/pneumatici (Kafka/Redpanda), raccoglitori di telemetria.
Convalida, normalizzazione, revisione PII all'ingresso, contract enforcement.
2. Livello di streaming
Job in streaming (Flink/Spark Struttured Streaming/Beam) con deduplicazione, watermark, aggregazioni stateful.
Fan-out in deposito e servizi online (phichestor, antifrode).
3. Livello batch
Orchestrazione (Airflow/Dagster), download incrementali, battistesti e retroprocessi, tipi SCD.
4. Memorizzazione (Lakehouse)
Bronze - Eventi crudi (append-only, immutabile).
Silver: tabelle di conformazione pulite con qualità e deduplicazione.
Gold: vetrine/firmature sotto valigette specifiche (BI/regolatore/ML).
Formati tabellari con ACID (Delta/Iceberg/Hudi), sparsi su livelli caldi/caldi/freddi.
5. Cerving e accesso
BI/SQL (Trino/Presto/DuckDB), livello semantico (metrics layer), API/GraphQL, Feature Store per la coerenza online/offline.
6. Governance e sicurezza
Catalogo/Linage, regole DQ, motore di accesso politico (RBAC/ABAC), maschera/Tokenization, archivio WORM per i rapporti.
4) Contratti e schemi
Contratti dati: OpenAPI/AsyncAPI/JSON Schema/Avro.
Evoluzione: versioni semantiche; modifiche backward-compatibile - Aggiunta di campi nullabili breaking - solo con '/v2 'e doppio record per il periodo di migrazione.
Registri: Schema Registry, catalogo di domini (Payments, Gameplay, Marketing).
5) Modelli di integrazione
CDC (Change Data Capture) - Da OLTP a bus (Debezium), partizionamento delle chiavi di dominio.
Outbox/Inbox - Consegna garantita degli eventi di logica di dominio.
Exactly-Once/Efficiely-Once - Transazioni in state, Idempotent Sink e, chiavi di deduplicazione.
Late Data & Watermarks: elaborazione degli eventi in ritardo; finestre con allowed lateness.
Reprocessing: pipline idropotenti, time-travel, snapshot.
6) Modello Lakehouse: bronze/silver/gold
Bronze (raw):- Partizioni temporali (event _ date) e di mercato (jurisdiction).
- Solo aggiunta; memorizzare il payload originale per la forensica.
- Tipi normalizzati, riferimenti, deduplicazione per '(event _ id, event _ time)'.
- Controllo FK, standardizzazione valuta/timesone, arricchimento.
- Vetrine denormalizzate (GGR, RG-screen, LTV, tabelle di coorti).
- SLA aggiornamenti, aggregazioni BI e rapporti.
7) Qualità dati (Data Quality)
Regole: validazione di schemi, intervalli, unicità, completezza, integrity referential.
Profilassi: distribuzione, radicalità, «deriva» dei segni.
Monitoraggio: p50/p95 ritardo pipline, drop-rate, errore budget.
Degradation policy - follback automatico (ultimo snapshot), alert e test t per le metriche.
yaml table: silver. payments rules:
- name: amount_positive type: range column: amount min: 0. 01
- name: currency_valid type: in_set column: currency set: [EUR,USD,GBP,TRY,BRL]
- name: unique_tx type: unique columns: [transaction_id]
slo:
freshness_minutes: 15 completeness_percent: 99. 5
8) Privacy e compliance
Riduce e maschera PII: conserva lo pseudo-ID, separa il look-up dei mapping.
Regionalizzazione: bozzetti/cataloghi geo-locali (EEA/UK/BR), «data residency».
Operazioni legali: DSAR/RTBF (proiezioni calcolabili e modifiche selettive), Legale Hold, archivi di report invariati.
Loging di accesso: controllo delle letture di tabelle sensibili, break-glass e JIT.
9) Osservabilità e controllo
Traccia automatica delle dipendenze dall'origine alla vetrina.
Le metriche delle pipline sono throughput, lag, failure-rate, cost/GB, cost/query.
Traccia (OTEL): 'trace _ id', dalle applicazioni, viene visualizzato negli eventi e si crea un percorso di query completo.
Budget SLO, anomalie di freschezza/volume/radicalità.
10) Accesso e modello di sicurezza
Categorie di dati: public/internal/confidential/restringted.
Criteri: row/column-level security; Masking dinamico (PAN/BAN/email).
Gestione chiavi: KMS/CMK, crittografia at-rest/in-transit, rotazione.
Segregazione dei compiti: ruoli separati di prod/analista/admine/revider.
11) Data Mesh e approccio alimentare
Домены: Payments, Gameplay, Marketing, Risk, Compliance.
Data Product proprietario, SLA freschezza, dizionario dei campi, test, versioni, metrica di consumo.
Contratti tra domini: versionabili, con backward, test-consumer (consumer-driven).
12) Filistore e flusso ML
Feature registry - Descrizione dei segni, origini, trasformazioni, SLO.
Coerenza online/offline: un codice di trasformazione, ritardi nella materializzazione online di 200-500 ms.
Monitoraggio della deriva: PSI/KS, autolavaggio e ritiri dei modelli, controllo PII.
Cronologia esperimenti: metadati, versioni, reproducibility, mappe modello.
13) Finmodel e cost-ottimizzazione
Partizionamento e Z-order/cluster per predici frequenti.
Storage freddo e TTL per tabelle non utilizzate, VACUUM.
Materialization views solo con pattern di query sostenibili.
Quote e budget per i giubbotti pesanti; chargeback per comando.
14) Topologia regionale e multi-tenante
Multi-region active: replica di temi e tabelle, perimetri pipeline indipendenti.
Failover/DR: RPO/RTO target, frammenti di metadati dell'orchestratore, controllo di ripristino.
Multi-tenantezza: isolamento di cataloghi/chiavi/quote, marcatura tenant _ id.
15) Processi e RACI (in breve)
R: Data Platform (ingest, conservazione, orchestrazione), Data Engineering (trasformazioni).
A: Head of Data / Chief Data Officer.
C: Compliance/Legale/DPO, Architettura, SRE.
I: BI/Analista, Prodotto, Marketing, Finanza.
16) SLO/SLI per flussi
Freschezza (freshness): p95 ritardo Silver 15 min, Gold (daily) pronto entro le 6:00. del tempo.
Totale, ≥ 99. 5% degli eventi per la finestra T.
Veridicità: errore-rate dei controlli DQ <0. Il 5% del volume.
Disponibilità del cerving: ≥ 99. 9% per l'API BI/Feature.
17) Modelli di tabella e partizionamento
sql
-- Bronze: Deposit events
CREATE TABLE bronze. payment_deposits (
event_time TIMESTAMP,
event_id STRING,
user_pseudo_id STRING,
amount DECIMAL(18,2),
currency STRING,
psp_ref STRING,
payload VARIANT
)
PARTITION BY DATE(event_time)
CLUSTER BY (currency);
-- Silver: normalized model
CREATE TABLE silver. payments AS
SELECT event_id,
CAST(event_time AS TIMESTAMP) AS ts,
user_pseudo_id,
amount,
currency,
psp_ref
FROM bronze. payment_deposits
QUALIFY ROW_NUMBER() OVER (PARTITION BY event_id ORDER BY ts) = 1;
18) Orchestrazione e DevX
Infra-as-Code: repository di pipline, test, gelosia, GitOps.
Data Contracts CI: Linter diagrammi, test DQ prima del deploy.
Backfill-framework - Retroprocessi sicuri con vincolo R/W e idempotency.
Cataloghi e modelli: generatori di pipline (cookie-cutter), best-practices.
19) Road map di implementazione
MVP (4-6 settimane):1. Bus eventi + ingest da 2-3 sorgenti chiave (OLTP CDC, API gateway).
2. Lakehouse Bronze/Silver, formato con ACID, catalogo e regole DQ di base.
3. 1-2 vetrine Gold (GGR giornaliero e vortice di conversione).
4. Metriche lag/completeness, lineage base, RBAC e maschera PII.
Fase 2 (6-12 settimane):- Unità di streaming (p95 latency 5 min), Feature Store, vetrine RG/AML.
- Strato semantico delle metriche, SLA per la segnalazione; cut-board.
- Regionalizzazione (EEA/UK), procedure DSAR/RTBF, Legali Hold per manufatti.
- Domini alimentari, consumer-driven contracts.
- Operazioni ML con monitoraggio della deriva, negoziazione automatica online/offline.
- Simulazioni automatiche dei cambiamenti di schema (impact analysis) e what-if in base al costo.
20) Errori frequenti e come evitarli
Payload crudi senza schemi: implementare schema-first, maiuscole e convalida CI.
Nessuna deduplicazione: chiavi di evento e idempotent-sink in Silver.
Miscela PII con analitica: separa i mupping e maschera i campi.
Gold senza proprietario: assegnare owner, SLO e metriche di consumo.
Nessuna strategia di reprocessing: time-travel, versioning logica, controllo «doppia contabilità».
Costo fuori controllo: partizioni, compressione, TTL, osservazione del costo.
21) Glossario (breve)
CDC - Cattura modifiche da OLTP.
Outbox - Pubblichiamo gli eventi di dominio in modo transazionale.
Watermark - valutazione della completezza del flusso per le finestre.
Lakehouse - data lake + tabelle ACID.
Data Product è un prodotto con proprietario e SLO.
Feature Store - Distribuzione coerente dei segni ML.
22) Totale
L'architettura del flusso di dati è un sistema di accordi gestito: contratti chiari, osservabilità, sicurezza e costi sotto controllo. Seguendo i pattern descritti (schema-first, bronze/silver/gold, CDC + Outbox, DQ e lineage, privacy-by-design), la piattaforma fornisce in modo affidabile al business, alla compilazione e al ML dati di qualità con SLO prevedibili e costi di proprietà comprensibili.