Zum Inhalt springen
Samuele Cieri

(04) Systeme

Systeme & Architektur

Projekte, gebaut als Brücken ins Data Engineering.

  • Mehrbenutzer-Plattform für persönliche Finanzen: ein geschichteter Rust-Workspace (reine Domäne, SQLx-Datenschicht, Axum-API, Hintergrund-Worker) auf PostgreSQL, der eine Expo-App für iOS, Android und Web sowie eine Tauri-Desktop-Shell bedient.

    Engineering-Entscheidungen

    • Hexagonale Crates: I/O-freie Domäne, in der CI geprüft
    • Row-Level Security auf jeder Verbindung des Pools
    • Transaktionale Outbox für Push, Jobs mit SKIP LOCKED
    • Rotierende Refresh-Tokens, ratenbegrenzter Login, typisierte Fehlercodes
    • Prometheus-Metriken, OTLP-Traces, Health-Probes, sauberes Herunterfahren
    • Playwright-E2E auf dem echten Stack, k6-Lasttests, zur Compile-Zeit geprüftes SQL

    Topologie

    1. Expo · Tauri

      Mobil, Web und Desktop

    2. Rust · Axum

      Typisierte HTTP-API, JWT

    3. Rust · Tokio

      Geplante Aufgaben

    4. PostgreSQL 18

      Trigger, RLS, Analytik

    Brücke zu den Daten

    Integrität durch die Datenbank: Salden werden nur über Trigger aktualisiert, Row-Level Security pro Benutzer, analytische SQL-Funktionen für Trends und Budgets, idempotente Importe von Fremdexporten.

    Privater Code — Demo auf Anfrage
  • End-to-End-Datenplattform zur Luftqualität in der Emilia-Romagna, auf Basis der Open Data von ARPAE, angereichert mit Wetterdaten von Open-Meteo: Ingestion in Rust zu partitioniertem Parquet, dbt-Modelle auf DuckDB lokal und BigQuery auf GCP, Orchestrierung mit Dagster. In Arbeit: Die Datenexploration ist abgeschlossen.

    Engineering-Entscheidungen

    • Inkrementelle, idempotente Ingestion: Neuverarbeitung über ein gleitendes Fenster und Upserts auf dem natürlichen Schlüssel
    • Geschichtete dbt-Modelle (Staging, Intermediate, Marts) mit SCD-Typ-2-Historie der Stationen
    • Datenqualität als Code: Tests auf Eindeutigkeit, Vollständigkeit und Aktualität
    • Vollständigkeit gemessen an einem erwarteten Zeitraster, im Raw nie aufgefüllt
    • Gesetzliche Grenzwerte in einem dbt-Seed, nie fest codiert
    • Dieselben Modelle auf DuckDB und BigQuery, Infrastruktur mit Terraform

    Topologie

    1. Rust

      ARPAE und Open-Meteo, idempotent

    2. Parquet

      Raw, partitioniert nach Jahr/Monat

    3. dbt · DuckDB · BigQuery

      Staging, Intermediate, Marts

    4. Dagster

      Schedules, Backfills, Lineage

    Brücke zu den Daten

    Ein reines Data-Engineering-Projekt: vorläufige Messwerte, die nach der Validierung revidiert werden, Lücken und uneinheitliche Formate in der Quelle, verwandelt in einen historisierten, getesteten Datensatz, der Fragen zu Grenzwertüberschreitungen, Schadstofftrends und Wetterkorrelation beantwortet.

    Repository