Naar de inhoud
SwankyForge
SwankyForge
Alle case studies
DatapipelinesMetricsBI3 maanden

USDDub

Dashboards liepen zes uur achter op de werkelijkheid. Nu lopen ze vijf minuten achter.

Versheid van data

5 minuten

Streaming met opnieuw af te spelen stappen

Was

6 uur

Geplande batch-extracts

In gewone taal

Wat dit is.

Geen jargon in deze sectie. De technische uitwerking staat verderop.

Wat er misging

Data kwam sneller binnen dan de nachtelijke jobs konden verwerken, dus wie een dashboard opende, keek op zijn best naar vanochtend. Als iets opnieuw verwerkt moest worden, deed een engineer dat met de hand — vaak in het weekend.

Wat we bouwden

We hebben de geplande nachtelijke jobs vervangen door een continue stroom die vanaf elk punt opnieuw kan worden afgespeeld, en elk getal onder één gedeelde definitie gebracht.

Wat er veranderde

Beslissingen worden genomen op data van minuten oud in plaats van uren oud, herverwerking kost niemand meer een weekend, en elk team leest dezelfde cijfers.

Architectuur

Hoe het in elkaar past.

Scroll door de fasen. Alles wat als toegevoegd is gemarkeerd, is een component dat vóór dit project niet bestond.

INGESTIETRANSFORMERENBron-API'sMARKT + CHAINKafkaGEPARTITIONEERDClickHouseKOLOMGEORIËNTEERDdbt-modellenINCREMENTEELBI-laagBEHEERD
  1. Bron-API's

    markt + chain

    voedt
    Kafkaingestie
  2. Kafka

    gepartitioneerd

    Dit hebben wij toegevoegd
    ontvangt van
    Bron-API'singestie
    voedt
    ClickHouse
  3. ClickHouse

    kolomgeoriënteerd

    Dit hebben wij toegevoegd
    ontvangt van
    Kafka
    voedt
    dbt-modellentransformeren
  4. dbt-modellen

    incrementeel

    Dit hebben wij toegevoegd
    ontvangt van
    ClickHousetransformeren
    voedt
    BI-laag
  5. BI-laag

    beheerd

    ontvangt van
    dbt-modellen
De uitwerking

Hoe het gebouwd zou worden.

Dataset, aanpak, doelmetrics en de stack. Geschreven voor wie het moet reviewen.

DatapipelinesMetricsBI3 maanden

USDDub

Canonieke marktdata en signalen die consistent blijven over bronnen en tijd heen.

Probleem

Markt- en eventdata kwam sneller binnen dan de bestaande batchjobs konden verwerken, dus dashboards liepen uren achter en backfills vereisten handmatige reruns.

Dataset

rijen
14M events / dag
features
203
bronnen
Markt-API's, on-chain, interne services
periode
Voortschrijdend 90 dagen

Aanpak

  1. 01Batch-extracts vervangen door een streaming-ingestielaag
  2. 02Een kolomgeoriënteerd warehouse gemodelleerd, afgestemd op de werkelijke querypatronen
  3. 03Elke stap idempotent gemaakt, zodat een backfill een replay is en geen reddingsoperatie
  4. 04Een beheerde set metrics gepubliceerd achter een BI-laag

Metrics

14M+
events / dag
aanhoudend
5 min
versheid van data
van 6 uur
410ms
query p95
-8.4s
geautomatiseerd
backfill-inspanning
was handmatig

Bewijs

bron
Referentieontwerp
cijfers
Illustratief — typische waarden voor dit ontwerp
meting
Niet gemeten. Gangbare waarden voor een referentieontwerp van dit type, niet waargenomen op een klantsysteem.
referentie
Niet beschikbaar voor dit project
laatst gecontroleerd
2026-08-25

Bedrijfsimpact

  • Beslissingen op data van minuten oud in plaats van uren oud
  • Backfills kosten geen engineeringweekends meer
  • Eén metrics-laag gedeeld door elke interne afnemer

Tech stack

  • Python
  • TimescaleDB
  • Kafka
  • Prefect
  • Grafana
  • dbt
  • Web3.py

Volgende

Een systeem als dit nodig?

Beantwoord zes vragen en we vertellen je of deze opzet bij je probleem past — ook als dat niet zo is.