(04) Sistemi
Sistemi & architettura
Progetti costruiti come ponti verso il Data Engineering.
Piattaforma multi-utente di finanza personale: un workspace Rust a livelli (dominio puro, data layer SQLx, API Axum, worker in background) su PostgreSQL, al servizio di un’app Expo per iOS, Android e web e di una shell desktop Tauri.
Scelte di ingegneria
- —Crate esagonali: dominio senza I/O verificato in CI
- —Row-level security impostata su ogni connessione del pool
- —Outbox transazionale per le push, job con SKIP LOCKED
- —Refresh token ruotati, login con rate limit, codici d’errore tipizzati
- —Metriche Prometheus, tracce OTLP, health probe, graceful shutdown
- —E2E Playwright sullo stack reale, load test k6, SQL verificato in compilazione
Topologia
Expo · Tauri
Mobile, web e desktop
Rust · Axum
API HTTP tipizzata, JWT
Rust · Tokio
Job pianificati
PostgreSQL 18
Trigger, RLS, analytics
Codice privato — demo su richiesta→Ponte verso i dati
Integrità garantita dal database: saldi aggiornati solo dai trigger, row-level security per utente, funzioni SQL analitiche per andamenti e budget, import idempotenti da export di terze parti.
Piattaforma dati end-to-end sulla qualità dell’aria in Emilia-Romagna, sugli open data ARPAE arricchiti con il meteo di Open-Meteo: ingestion in Rust verso Parquet partizionato, modelli dbt su DuckDB in locale e BigQuery su GCP, orchestrazione con Dagster. In corso: l’esplorazione dei dati è completata.
Scelte di ingegneria
- —Ingestion incrementale e idempotente: riprocessamento a finestra mobile e upsert sulla chiave naturale
- —Modelli dbt a livelli (staging, intermediate, marts) con storico SCD Type 2 delle stazioni
- —Qualità del dato come codice: test di unicità, completezza e freschezza
- —Completezza misurata su una griglia temporale attesa, mai riempita nel raw
- —Limiti di legge in un seed dbt, mai scritti nel codice
- —Stessi modelli su DuckDB e BigQuery, infrastruttura con Terraform
Topologia
Rust
ARPAE e Open-Meteo, idempotente
Parquet
Raw partizionato per anno/mese
dbt · DuckDB · BigQuery
Staging, intermediate, marts
Dagster
Schedule, backfill, lineage
Repository↗Ponte verso i dati
Un progetto di data engineering puro: misure provvisorie riviste dopo la validazione, buchi e formati incoerenti nella sorgente, trasformati in un dataset storicizzato e testato che risponde su superamenti dei limiti di legge, trend degli inquinanti e correlazione con il meteo.