Vai al contenuto
Samuele Cieri

(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

    1. Expo · Tauri

      Mobile, web e desktop

    2. Rust · Axum

      API HTTP tipizzata, JWT

    3. Rust · Tokio

      Job pianificati

    4. PostgreSQL 18

      Trigger, RLS, analytics

    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.

    Codice privato — demo su richiesta
  • 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

    1. Rust

      ARPAE e Open-Meteo, idempotente

    2. Parquet

      Raw partizionato per anno/mese

    3. dbt · DuckDB · BigQuery

      Staging, intermediate, marts

    4. Dagster

      Schedule, backfill, lineage

    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.

    Repository