Skip to content

0002. ETL code-first in TypeScript (vs Talend)

  • Stato: Accettata
  • Data: 2026-06-03
  • Decisori: Team BI/ETL

Contesto

Sviluppiamo applicazioni di Business Intelligence con forte componente ETL, storicamente gestita con strumenti come Talend. Gli strumenti ETL grafici hanno limiti: versionamento difficile, test automatici scomodi, review opache, riuso limitato, lock-in. Il nostro ecosistema (noeva) è già TypeScript/Node con pnpm, tsup, vitest.

Decisione

Realizziamo l'ETL code-first in TypeScript, con un framework interno che mappa i concetti Talend (componenti, job, schema, context, reject flow) su primitive tipate (Source, Sink, Transform, Pipeline, contratti Zod, RunContext, dead-letter).

Stack: TypeScript ESM strict, Node ≥20, pnpm, tsup, vitest, ESLint, Prettier. Validazione dati con Zod. Coerente con le convenzioni dell'ecosistema noeva.

Alternative considerate

  • Talend / ETL grafico — versioning e testing deboli, review difficile, lock-in.
  • Airflow/dbt (Python) — ottimi, ma introducono un secondo ecosistema (Python) fuori dal nostro stack TS.
  • Framework TS esistenti — valutabili per casi specifici, ma volevamo primitive minime, controllate e senza dipendenze pesanti.

Conseguenze

  • Positive: pipeline versionate, testabili, rivedibili come codice; riuso di connettori/trasformazioni; coerenza con noeva; nessun lock-in.
  • Costi: manteniamo noi il framework core (mitigato dal fatto che è minimale e testato).
  • Le pipeline complesse stateful (aggregazioni grandi) richiedono attenzione alla modalità streaming vs dead-letter (documentato).

Noeva è un marchio registrato di 4D S.R.L.