Skip to content
QuorlyticTalk to a Data ExpertContact
Menu

Engineering guide

What a data pipeline is, and what makes it trustworthy.

The word covers everything from a scheduled export to an event stream. What separates a production pipeline from a script is what happens when the source changes, a job fails, or a number looks wrong.

Direct answer

A data pipeline moves data from source systems into models a business can rely on: it ingests, validates, transforms and delivers, with tests and ownership attached at each step. Batch, streaming and change data capture are different ways of moving the same records, chosen by how fresh the decision must be rather than by preference.

Engineering reference guideUpdated Oct 07, 20268 min read

  1. 01Inventory sources
  2. 02Agree freshness
  3. 03Build and validate
  4. 04Monitor and recover

Choosing an ingestion pattern

Batch, change data capture and streaming compared by fit
DimensionBatchChange data captureStreaming
FreshnessMinutes to hours, on a schedule.Minutes, following source commits.Seconds or continuous.
Best fitDaily reporting, reconciliation and large extracts.Operational sources where updates must not be missed.Event-driven decisions, alerting or real-time user experiences.
ComplexityLow: repeatable jobs and clear windows.Moderate: log reading, ordering and initial snapshots.High: replay, event time, ordering and operational monitoring.
Typical failure modeWindow overruns and partial extracts.Missed or duplicated changes after reconnects.Late events and consumer lag.
Operational needsSchedules, retries and reconciliation counts.Offset tracking, snapshot strategy and idempotent merges.Consumer monitoring, back-pressure and replay tooling.

The four stages every pipeline shares

Whatever the tooling, a pipeline ingests from a source, validates what arrived, transforms it into something usable, and delivers it to a consumer with a freshness expectation attached. Naming those four stages makes ownership and acceptance criteria possible; skipping straight to tooling usually means nobody can say what the pipeline promises.

Batch, streaming and change data capture

Batch moves data on a schedule, which is simple to operate and appropriate when the decision is daily; choosing between the three patterns is the first architecture decision here. Streaming moves events as they occur and brings ordering, replay and operational complexity. Change data capture reads a source’s change log so updates arrive without full extracts. Each is a different answer to the same freshness question.

  • Batch: scheduled, simple, cheap to reason about
  • Streaming: event-time handling, replay and ordering designed up front
  • CDC: incremental updates without repeatedly scanning the source

What production adds

A pipeline is in production when it is observable, replayable and owned. That means freshness and volume are monitored, failures raise an alert with a named responder, a failed run can be replayed without duplicating records, and schema changes are handled deliberately instead of breaking downstream models silently.

Idempotency is the property that makes replay safe: running the same load twice produces the same result. In practice that means writing with a merge on a stable key, or overwriting a whole partition such as one day, instead of appending rows every time the job runs.

Quality gates belong in the pipeline

Completeness, uniqueness, validity and reconciliation checks should run as part of the load rather than as an afterthought. Invalid records are quarantined with a reason and a review path, not dropped. The tests are the acceptance criteria for the data product, and they should be visible to the people who consume it.

Typical gates are row counts reconciled to the source, a uniqueness check on the business key, non-null checks on required fields, accepted values for status codes, and a freshness check that fails when the newest record is older than the agreed window.

Failure modes worth designing for

Late arrivals, duplicate events, partial writes, source schema changes, clock and time-zone differences, and upstream systems that quietly stop producing are all normal. Each needs a decision recorded before it happens in production: what the pipeline does, who is told, and how the data is corrected afterwards.

Illustrative example · hypothetical organisation

Worked example: an orders pipeline, end to end

Take a hypothetical order-to-cash pipeline feeding a daily sales dashboard.

Ingest reads new and changed orders from the ERP each night through change data capture and lands them unchanged. Validate checks that every order has a customer and a currency, that order IDs are unique and that the daily count sits within the expected range; failures go to a quarantine table with the reason attached.

Transform converts currencies at the daily rate and builds an order-line fact at one row per line. Deliver refreshes the dashboard dataset and shows the time of the last successful load beside the numbers.

The pipeline has one owner, an alert routed to that owner when the load misses 06:00, and a written procedure for re-running a day without duplicating orders.

Where people commonly go wrong

Two mistakes dominate. Treating the pipeline as finished when the first run succeeds, and encoding business logic in a place nobody can review. The first produces a fragile system with no operator; the second produces two definitions of the same measure. Both are avoided by deciding ownership and tests before the pipeline is built.

Questions and trade-offs

Question

Do we need streaming for everything?

No. Streaming earns its place only where the decision loses value at batch latency. For most reporting, a well-operated batch or CDC pipeline that reliably lands within its window is cheaper to build, easier to monitor and simpler to recover than an event pipeline built for a decision that runs daily.

Question

How do we handle late or duplicated data?

Design for it before production: keep enough source history to replay, make loads idempotent so a repeated run does not duplicate records, and decide the correction window with the data owner. Then test the correction path deliberately, because it will be used.

Question

What is the difference between a data pipeline and ETL?

ETL is one pattern a pipeline can follow: extract, transform, then load. A data pipeline is the broader term for any automated path that moves and prepares data, including ELT, streaming and change data capture. The production requirements are the same whichever pattern is used.

Technical references

Share

Your next data decision

Start with a clear problem.
Build what comes next.

Talk to a Data Expert

Bring the business question.
We'll help shape the engineering brief.