PRODUCTION FLOWSIngestion

Data Sources & Ingestion Patterns

How data moves in production — pick a topic on the left and its full breakdown loads here: the mental model, real pipeline diagrams and worked examples, failure modes, and the habits that keep data flowing correctly and on time.

18 min readTopics chapter readerLevel · Foundations
01 · Orientation

What You'll Master Here

who initiates (pull or push) and how much do we read (full or incremental)? Answer both and you have designed the ingestion.

4 min · Topic 1 of 8

Every pipeline begins the same way: getting data in. This is ingestion, and it is deceptively hard, because the source is the one part of the system you do not control. It can change shape, rate-limit you, go down, or quietly stop sending data, and your job is to capture everything anyway.

This chapter gives you the two mental maps that make ingestion tractable. First, the four families of sources (files, databases, APIs, event streams), because each family has a known pattern. Second, the two axes that describe any ingestion strategy: pull versus push (who initiates) and full versus incremental (how much you read).

By the end you will be able to look at any source and immediately know its family, whether to pull or be pushed to, whether to load it fully or incrementally, and which reliability traps (pagination, rate limits, retries, duplicates) you must handle. That is the practical core of being trusted with real data.

Core mental model

Ingestion has two questions: who initiates (pull or push) and how much do we read (full or incremental)? Answer both and you have designed the ingestion.

Why it matters

Ingestion is where most data is silently lost, because failures here are quiet: a skipped API page, a missed incremental window, a duplicate after a retry. Get ingestion right and everything downstream has a fighting chance; get it wrong and no later cleverness can recover the rows you never captured.

ingestion
Collecting raw data from a source into the pipeline, ideally unchanged.
source
Where data is born: a file, a database, an API, or an event stream.
connector
A reusable component that knows how to ingest from a specific source.
watermark
A bookmark of the last value processed, used to read only new data next time.
Common mistake

Treating ingestion as a trivial "copy the data" step. You ignore pagination, rate limits, and retries, and silently lose or duplicate rows in production.

Better habit

Classify every source into one of the four families first.

Decide pull vs push and full vs incremental before writing code.

Assume the source will misbehave, and design for it.

The big idea

You do not control the source, so ingestion is defensive engineering. Capture everything, exactly once, even when the source paginates, throttles, changes, or fails.

How to study this chapter

Learn the four families, then the two axes (pull/push, full/incremental), then the reliability traps. Together they let you design ingestion for almost any source you meet.

Remember this

Ingestion is defensive capture from sources you do not control; master the four source families and the two axes (pull/push, full/incremental) and you can ingest almost anything.

Practice2 prompts
  1. Name the four source families and the two ingestion axes.
  2. Explain why lost data at ingestion cannot be recovered downstream.