# netflix-uda-unified-data-architecture-knowledge-graph-2025-06-12

## Veille

Architettura dati unificata in Netflix, knowledge graph RDF/SHACL, modellazione di dominio, metamodello Upper, mapping semantici, proiezioni automatiche GraphQL/Avro/Iceberg - Netflix Technology Blog

## Titre Article

Model Once, Represent Everywhere: UDA (Unified Data Architecture) at Netflix

## Date

2025-06-12

## URL

https://netflixtechblog.com/uda-unified-data-architecture-6a6aee261d8d

## Keywords

UDA, Unified Data Architecture, knowledge graph, modellazione di dominio, RDF, SHACL, metamodello Upper, integrazione semantica, catalogo dati, registro degli schemi, GraphQL, Avro, Iceberg, Data Mesh, mapping, proiezioni, transpilazione, PDM, Sphere, Netflix, content engineering, dati connessi, ontologie, SPARQL, grafi denominati, schemi federati, CDC, devil fruit, scoperta dati, reportistica operativa, SKOS

## Authors

Alex Hutter, Alexandre Bertails, Claire Wang, Haoyuan He, Kishore Banala, Peter Royal, Shervin Afshar (Netflix Technology Blog)

## Ton

**Profilo:** Approfondimento tecnico ingegneristico | Voce tecnica istituzionale | Registro descrittivo-tecnico | Livello esperto

Il team di ingegneria di Netflix adotta una voce da esposizione tecnica approfondita tipica del Netflix Tech Blog nel presentare le proprie innovazioni architetturali. La collaborazione multi-autore (7 ingegneri) segnala uno sforzo cross-team. Linguaggio altamente specialistico (RDF/SHACL, metamodello Upper, mapping semantici, SPARQL) rivolto a data engineer senior. Struttura sistematica (problema → soluzione → implementazione → risultati) che dimostra rigore ingegneristico. Un tono di sicura autorità tecnica che condivide lezioni apprese su larga scala. Tipico dei blog di ingegneria delle big tech (stile Uber, Airbnb, LinkedIn) che documentano sistemi complessi per una comunità di ingegneri che apprende dalle sfide della scala.

## Pense-betes

- **Principio cardine**: "Model once, represent everywhere"
- **Problema risolto**: modelli duplicati/incoerenti, terminologia incoerente, problemi di qualità dei dati, connettività limitata
- **UDA = knowledge graph** per dati connessi nell'ambito Content Engineering
- **Fondamenta RDF/SHACL** ma con sfide operative su scala enterprise
- **Metamodello Upper**: modello di tutti i modelli, autoreferenziale, autodescrittivo, autovalidante
- **Modello informativo named-graph-first** per risoluzione, modularità, governance
- **Modelli di dominio** espressi come RDF concettuale all'interno di grafi denominati
- **Rappresentazioni dei contenitori di dati**: interpretazioni fedeli dei sistemi come dati a grafo
- **Mapping**: collegano i modelli di dominio ai contenitori di dati concreti
- **Proiezioni**: producono contenitori concreti (schema GraphQL, sorgente Data Mesh, tabella Iceberg)
- **Transpilazione automatica**: modello di dominio → GraphQL/Avro/Iceberg/Java con preservazione semantica
- **PDM (Primary Data Management)**: vocabolari controllati con SKOS, interfaccia generata
- **Sphere**: reportistica operativa self-service, scoperta tramite concetti di business
- **Upper costruito su RDFS/OWL/SHACL** ma a un livello di astrazione superiore
- **GraphQL Federation**: supporto per la generazione di schemi federati
- **Automazione basata sull'intento**: UDA ragiona sul movimento dei dati preservandone la semantica
- **Il knowledge graph unifica**: modelli di dominio + schemi transpilati + mapping
- **Programmabile via Java/GraphQL/SPARQL**
- **Catalogo semantico**: traccia solo gli asset collegati ai modelli di dominio
- **Problema Spider-Man**: lo stesso concetto ("film") modellato in modo diverso ovunque

## RésuméDe400mots

Netflix presenta UDA (Unified Data Architecture), un'infrastruttura innovativa basata su un knowledge graph per affrontare la frammentazione cronica dei modelli di dati nel proprio ecosistema Content Engineering. Il problema di fondo: concetti di business fondamentali come "attore" o "film" vengono ridefiniti in modo indipendente in ciascun sistema (GraphQL Gateway, gestione degli asset, elaborazione media), generando duplicazioni, incoerenze terminologiche, problemi di qualità e connettività limitata.

**Architettura fondante: knowledge graph RDF/SHACL**

UDA adotta RDF e SHACL come fondamenta tecniche, ma si confronta con sfide operative rilevanti su scala enterprise: RDF non disponeva di un modello informativo utilizzabile, SHACL non era concepito per dati enterprise con schemi locali e chiavi tipizzate, i team non avevano pratiche di authoring condivise, e gli strumenti per ontologie non offrivano alcun supporto alla modellazione collaborativa. Soluzione: un modello informativo "named-graph-first" in cui ogni grafo denominato è conforme a un modello di governo, esso stesso un grafo denominato all'interno del knowledge graph.

**Upper Metamodel: il modello di tutti i modelli**

Upper costituisce il linguaggio formale per descrivere domini di business o sistemi, organizzando i concetti in modelli di dominio: vocabolari controllati che definiscono classi di entità chiave, attributi e relazioni. Elemento cruciale, Upper è un'ontologia superiore autoportante (bootstrapping): autoreferenziale (modella sé stesso), autodescrittiva (definisce il concetto di modello di dominio), autovalidante (è conforme al proprio modello). Upper si proietta su un'API Java basata su Jena e su uno schema GraphQL federato nell'Enterprise Gateway. Poiché tutti i modelli di dominio sono estensioni conservative di Upper, l'integrazione runtime senza soluzione di continuità garantisce una semantica dei dati coerente.

**Mapping e proiezioni: connessione e automazione**

I mapping collegano gli elementi del modello di dominio alle rappresentazioni dei contenitori di dati (resolver GraphQL, sorgenti Data Mesh, tabelle Iceberg). Tutto è indirizzabile: dal modello di dominio fino all'attributo specifico, dalla tabella Iceberg fino alla singola colonna. I mapping abilitano la scoperta bidirezionale: dal concetto di business al sistema fisico che memorizza il dato, e viceversa. Le proiezioni producono contenitori concreti che implementano le caratteristiche derivate dal modello di dominio registrato, con transpilazione automatica verso schemi GraphQL/Avro che preserva la semantica.

**Adottanti in produzione: PDM e Sphere**

PDM (Primary Data Management) gestisce vocabolari controllati autorevoli utilizzando il modello SKOS (W3C). Prende come input un modello di dominio, genera automaticamente l'interfaccia utente e provisiona Domain Graph Services e pipeline Data Mesh tramite proiezioni UDA. I consumatori dei vocabolari non hanno consapevolezza di SKOS: lavorano con la terminologia di dominio familiare.

Sphere: un sistema di reportistica operativa self-service basato su UDA. La scoperta avviene tramite concetti di business ("attori", "film"), non tramite tabelle tecniche. Il knowledge graph UDA genera query SQL tramite attraversamento del grafo, eliminando join manuali e mediazione tecnica. I metadati aggregati sono presentati con vocabolario unificato, e i confini e le isole del panorama dei dati vengono identificati automaticamente.

**Impatto trasformativo**

UDA trasforma i modelli concettuali in un piano di controllo attivo: non si limita a documentare i concetti, ma genera schemi, provisiona servizi, orchestra il movimento dei dati e applica la coerenza in modo automatico. Sviluppi futuri: supporto Protobuf/gRPC, materializzazione dei dati istanza nel knowledge graph, e risoluzione delle sfide originarie di Graph Search che hanno ispirato questo lavoro.

## GrapheDeConnaissance

- Netflix —a_créé→ UDA (TECHNOLOGIE, 0.99)
- UDA —est_basé_sur→ RDF (TECHNOLOGIE, 0.98)
- UDA —est_basé_sur→ SHACL (TECHNOLOGIE, 0.98)
- Upper —fait_partie_de→ UDA (TECHNOLOGIE, 0.97)
- Upper —permet→ génération de schémas GraphQL (CONCEPT, 0.95)
- Upper —permet→ génération de schémas Avro (CONCEPT, 0.95)
- UDA —permet→ PDM (TECHNOLOGIE, 0.96)
- UDA —permet→ Sphere (TECHNOLOGIE, 0.96)
- PDM —utilise→ SKOS (TECHNOLOGIE, 0.95)
- Sphere —permet→ génération de requêtes SQL (CONCEPT, 0.93)
- UDA —résout→ duplication des modèles (CONCEPT, 0.97)
- UDA —permet→ connexion des domain models aux conteneurs de données (CONCEPT, 0.95)
- Netflix —utilise→ principe "Model Once Represent Everywhere" (CONCEPT, 0.94)

---
Canonical: https://www.thekb.eu/it/fiches/netflix-uda-unified-data-architecture-knowledge-graph-2025-06-12/
