top of page

CASE STUDY

340 million Records a Day. No Operator. No Backlog.

A telemetry pipeline rebuild that turned a cascading complex problem into a working fact.

The Challenge


A technology client's analytics and alerting teams depended on near-real-time application telemetry - quality-of-experience data that had to move from source to destination within minutes of being generated, continuously, 24 hours a day.

 

The data volumes were unforgiving: 1.2 million rows every five minutes, across a wide source schema, totalling roughly 340 million rows per day. The pipeline had to keep pace with every single window, in auto mode, where missing even a few cycles would generate a large backlog.

​

What Was Breaking

​

The existing pipeline treated each five-minute window as a batch: read everything into memory, transform it, write it out. On peak windows this meant holding 3-4 GB of data in RAM before a single row reached the destination - and taking 5-7 minutes to do it. Longer than the interval between triggers.

New pipeline runs were launching before previous ones had finished. Runs overlapped. A backlog formed and grew. The system meant to deliver real-time telemetry was perpetually chasing its own tail.

​

What We Changed

​

Overlapping the stages. The fundamental shift was architectural: rather than sequencing extract → transform → load, we ran them concurrently. Data moved from source in small increments while transformation and load preparation happened downstream in parallel. Extract and transform time for a full 1.2M-row window dropped to ~45 seconds on a near-fixed memory footprint.

​

Loading data the way the database expects it. The destination was a time-series database with a faster bulk ingestion path that the original pipeline was bypassing entirely, hitting a row-level trigger on every insert. Switching to bulk load operations with the correct routing configuration brought load time down to ~25 seconds at roughly 45,000 rows per second.

​

Running fewer, larger writes. Conventional wisdom says parallelise for throughput. For time-series hypertable loads it's the opposite - multiple parallel writers compete for internal locks. Consolidating into fewer, larger write streams consistently outperformed aggressive parallelisation.

​

Built to Stay Honest

​

Fast isn't enough if it's fragile. The pipeline ran with a deliberate offset to account for late-arriving source rows. A lightweight background process continuously walked back the last 10 hours, comparing source and destination, and backfilling any gaps — idempotently, without intervention.

Every run validated itself. Row counts on both sides of each window were checked automatically - mismatches surfaced within five minutes, not in a downstream report weeks later.

​

The Outcome

​

A pipeline that had been a source of daily operational anxiety became a better managed infrastructure. It ran. It kept up. It caught its own gaps. When something went wrong, it failed immediately rather than silently falling behind.

340 million rows a day, unattended.

DATA ENGINEERING · REAL-TIME PIPELINES · LETSAI SOLUTIONS

bottom of page