Fundamentals of Data Engineering
Joe Reis, Matt Housley
2022 · O'Reilly
ISBN 9781098108298
The lifecycle vocabulary (generation → storage → ingestion → transformation → serving, plus the undercurrents) every later book plugs into.
Data engineering isn't just Spark, SQL, or pipelines. It means understanding how a CPU moves bytes, how a storage engine turns a query into I/O, and how a cluster stays correct while machines fail. This is an O'Reilly reading path ordered that way: data engineering end to end first, then software engineering as the base for designing and scaling data-intensive applications, each step argued from first principles.
Data engineering is the infrastructure that every downstream software practice depends on: testing, versioning, observability, and review mean little if the data underneath is late, wrong, or undefined. Its lifecycle is also a communication map, because each stage hands something to a different team. Start here, then read the four levels below for how the machinery underneath actually works.
Data engineering lifecycle
Your day-to-day
The stages and undercurrents a software or data engineer owns directly. Expect to be the one communicating here.
Who you work with
What to communicate
Software engineering principles
Who you work with
What to communicate
Software engineering principles
Who you work with
What to communicate
Software engineering principles
Who you work with
What to communicate
Software engineering principles
Who you work with
What to communicate
Software engineering principles
Who you work with
What to communicate
Software engineering principles
Who you work with
What to communicate
Software engineering principles
Who you work with
What to communicate
Software engineering principles
Know the partner teams
Usually dedicated roles elsewhere. You are not responsible for the work, but you are expected to know what they need from you and what you need from them.
Who you work with
What to communicate
Software engineering principles
Who you work with
What to communicate
Software engineering principles
Who you work with
What to communicate
Software engineering principles
Who you work with
What to communicate
Software engineering principles
Who you work with
What to communicate
Software engineering principles
Who you work with
What to communicate
Software engineering principles
Who data moves between
Source owners
Application teams, vendors, device fleets
Data engineer
Ingest, store, transform, serve
Consumers
Analytics, machine learning, reverse ETL
What changes hands
Data contract
Producer and engineer agree schema and change notice
Freshness agreement
Engineer and consumers agree how stale data may be
Dataset documentation
Grain, definitions, known limits
Access request
Consumers ask; security approves least privilege
Partner roles that own cross-cutting concerns
Security
Classification, access, encryption
Governance
Ownership, quality bar, lineage
Architecture
Reversible decisions, sign-off on one-way doors
Platform and reliability
Infrastructure, on-call, service levels
The data engineer sits between producers and consumers and trades written agreements with both, while partner roles own the cross-cutting concerns.
Other lifecycles
The same pattern repeats in the neighboring disciplines, and they assume this one is already built: ML/MLOps trains on what Serving produces, and DevOps runs the pipelines Orchestration schedules.
SDLC
Plan → Design → Build → Test → Deploy → Maintain
ML/MLOps
Data → Train → Evaluate → Deploy → Monitor
DevOps
Plan → Code → Build → Test → Release → Deploy → Operate → Monitor
Preparing for a data engineering interview? Start at the Pipelines level, then return to the hardware, application, and distributed levels for the machinery underneath.
"Navigate ambiguity by understanding what to use, when to use it, and why to use it."
— Thomas To
What are you trying to do?
The outcome the business needs and who it serves — scope and a definition of "done", stated before anything technical.
Unlocks: A bounded problem the why can be measured against.
Why are you doing it?
The motivation and the success criteria — which characteristics matter most, and which trade-offs are acceptable to get them.
Unlocks: The constraints that rule approaches in or out.
How are you going to do it?
The technical approach — components, data flow, and trade-offs — chosen only once the what and the why are settled, and judged against them.
Unlocks: A design you can defend, not a preference.
Every topic on the three level pages follows these questions in order: what the decision is, why the hardware or algorithm makes one answer cheaper, and how to apply it.
A widely shared list of 20 data-engineering books (architecture, pipelines, storage + SQL, software craft) suggests starting with the five below. It is a good list of tools. It skips the layers underneath them: hardware, storage engines, SQL, streaming theory, and orchestration.
Fundamentals of Data EngineeringDesigning Data-Intensive ApplicationsLearning SparkThe Data Warehouse ToolkitKafka: The Definitive Guide
Keep
Fundamentals of Data Engineering first means every tool that follows has a place to sit: you know which stage Spark, Kafka, or a warehouse serves before learning its API.
Keep
Kleppmann is still the best map of the field. The 2nd edition (2026, with Chris Riccomini) updates it for cloud-native storage and streaming.
Gap
Without the memory hierarchy you cannot explain why data engineering runs on CPUs rather than GPUs, why columnar formats win, or what a slow job is actually waiting on. The path begins at the API, above the layer that sets its costs.
Dive Into SystemsUnderstanding Software DynamicsSystems Performance (2nd ed.)
Gap
DDIA introduces B-trees and LSM-trees as concepts. Database Internals shows the page layouts, compaction, and concurrency control that decide a system's read and write costs.
Gap
Spark SQL is a relational optimizer. Without SQL, query plans, and join algorithms first, Spark's physical plan reads as noise. The basics-to-performance order is SQL, then Spark.
Gap
A broker is a log, not a stream processor. Event time, watermarks, and exactly-once semantics (Streaming Systems) are what make Kafka designs correct, so they come first.
Gap
Nothing covers consensus, partial failure, or resilience patterns, and nothing covers the two industry-standard control planes, Kubernetes for compute and Airflow for workflows.
Think Distributed SystemsDesigning Distributed Systems (2nd ed.)Kubernetes: Up and Running (3rd ed.)Data Pipelines with Apache Airflow (2nd ed.)
Fundamentals of Data EngineeringDesigning Data-Intensive Applications (2nd ed.)Database InternalsLearning SQL (3rd ed.)Learning Spark (2nd ed.)
Lifecycle, then the map of the field, then the storage engine underneath it, then the query language on top, then the distributed engine that runs it. After that, follow the staged path below.
Each stage builds on the previous one, and each ends on something you can now explain. The software engineering base (last stage) runs alongside the rest rather than after it.
Fundamentals of Data EngineeringFundamentals of Software Architecture (2nd ed.)
You can now explain: What the lifecycle is, and which architecture characteristics trade against each other.
Dive Into SystemsUnderstanding Software DynamicsSystems Performance (2nd ed.)
You can now explain: The memory hierarchy, why data engineering is bound by memory and I/O rather than arithmetic, and how to profile a slow job.
Designing Data-Intensive Applications (2nd ed.)Database Internals
You can now explain: B-tree vs LSM-tree, and the read, write, and space amplification each one trades.
Learning SQL (3rd ed.)PostgreSQL Query OptimizationHigh Performance MySQL (4th ed.)The Data Warehouse Toolkit (3rd ed.)SQL Antipatterns, Volume 1
You can now explain: Execution plans, index choice, join algorithms, and dimensional modeling.
Learning Spark (2nd ed.)Spark: The Definitive GuideHigh Performance Spark (2nd ed.)
You can now explain: Shuffles, join strategy selection, adaptive query execution, and Tungsten.
Streaming SystemsKafka: The Definitive Guide (2nd ed.)Building Event-Driven Microservices (2nd ed.)Stream Processing with Apache Flink
You can now explain: Event time, effectively-once delivery, event sourcing, and the outbox pattern.
Think Distributed SystemsDesigning Distributed Systems (2nd ed.)Building Resilient Distributed SystemsBuilding Distributed Applications that Work
You can now explain: Consensus, partial failure, resilience patterns, and how they compose into one working application.
Kubernetes: Up and Running (3rd ed.)Kubernetes Patterns (2nd ed.)Data Pipelines with Apache Airflow (2nd ed.)Terraform: Up and Running (3rd ed.)Infrastructure as Code (3rd ed.)
You can now explain: Reconciliation loops, scheduling, and DAG-based workflow orchestration.
Data Pipelines Pocket ReferenceData Engineering Design PatternsAnalytics Engineering with SQL and dbtDelta Lake: Up and RunningApache Iceberg: The Definitive GuideData Quality FundamentalsData Contracts
You can now explain: Where to transform, how to load idempotently, how to model and store tables, and how to enforce quality and contracts — the decisions the Pipelines level argues from first principles.
Seven Databases in Seven Weeks (2nd ed.)Data MeshData Management at Scale (2nd ed.)Data Governance: The Definitive GuideCloud FinOps (2nd ed.)
You can now explain: Choosing a platform shape — store per access pattern, and ownership per domain.
Data Engineering for Multimodal AINatural Language Processing with Spark NLPDistributed AI SystemsAI Systems Performance EngineeringRedefining Data Engineering with AI
You can now explain: Where workloads flip from CPU-bound to GPU-bound, and what data engineering must feed them.
Fundamentals of Software EngineeringThe Pragmatic Programmer (20th anniversary ed.)Software Engineering at GoogleRelease It! (2nd ed.)Working Effectively with Legacy CodeDatabase Reliability EngineeringImplementing Service Level Objectives
You can now explain: Shipping, testing, and keeping production systems alive as they grow and age.
Dependency order
Hardware
Start from the silicon, not the framework
Application
Every engine picks a corner of the same triangle
Distributed
From one machine to a control plane
Pipelines
Design the pipeline from source to consumer
Each level rests on the one before it. Read the Pipelines level first if an interview is close, then fill in the machinery underneath.
Why data engineering is CPU- and memory-bound, the memory hierarchy, columnar and vectorized execution, and language runtime costs.
Read the hardware level Level 2 · ApplicationThe RUM conjecture, B-tree vs LSM-tree and other storage engines, index lookups, join algorithms, and Spark execution.
Read the application level Level 3 · DistributedPartitioning, replication, consensus, delivery semantics, distributed patterns, and why Kubernetes and Airflow are the standards.
Read the distributed level Level 4 · PipelinesETL vs ELT, batch vs streaming, idempotent loads, orchestration, modeling, lakehouse tables, CDC, quality, testing, SQL patterns, cost, and interview structure.
Read the pipelines levelEvery book links to O'Reilly Learning with its ISBN. Three books from the original list are not on O'Reilly and were replaced: Computer Systems: A Programmer's Perspective by Dive Into Systems, SQL Performance Explained by PostgreSQL Query Optimization, and A Philosophy of Software Design by Fundamentals of Software Engineering.
Joe Reis, Matt Housley
2022 · O'Reilly
ISBN 9781098108298
The lifecycle vocabulary (generation → storage → ingestion → transformation → serving, plus the undercurrents) every later book plugs into.
Nathaniel Schutta, Dan Vega
2025 · O'Reilly
ISBN 9781098143220
The gap between writing code and engineering it — reading existing code, modeling, testing, and a reliable path to production. Stands in for A Philosophy of Software Design, which is not on O'Reilly.
Mark Richards, Neal Ford
2nd ed. · 2025 · O'Reilly
ISBN 9781098175504
Architecture characteristics and the trade-offs between them — the "why" vocabulary that turns a tool choice into a defensible decision.
Suzanne J. Matthews, Tia Newhall, Kevin C. Webb
2022 · No Starch Press
ISBN 9781098141370
C, assembly, the memory hierarchy, caching, and the OS from the ground up — the O'Reilly-hosted stand-in for Computer Systems: A Programmer's Perspective.
Richard L. Sites
2021 · Addison-Wesley
ISBN 9780137589692
Measuring CPU, memory, disk, and network time at the nanosecond level — how to find out what a slow query is actually waiting on.
Brendan Gregg
2nd ed. · 2020 · Addison-Wesley
ISBN 9780136821694
The USE method and Linux observability tooling — attributing a slow job to CPU, memory, file system, disk, or network instead of guessing.
Chris Fregly
2025 · O'Reilly
ISBN 9798341627772
The GPU side of the same question — what makes a workload accelerator-bound, and why data loading so often starves it.
Martin Kleppmann, Chris Riccomini
2nd ed. · 2026 · O'Reilly
ISBN 9781098119058
The map of the whole field — storage engines, replication, partitioning, transactions, consistency, batch and stream — at the level of first principles rather than products.
Alex Petrov
2019 · O'Reilly
ISBN 9781492040330
Part I opens up B-tree pages, LSM compaction, and buffer management; Part II covers failure detection, leader election, and consensus.
Zhamak Dehghani
2022 · O'Reilly
ISBN 9781492092384
Domain ownership, data as a product, and federated governance — the organizational answer once one central data team becomes the bottleneck.
Piethein Strengholt
2nd ed. · 2023 · O'Reilly
ISBN 9781098138851
Enterprise data architecture — distribution, integration patterns, metadata, and governance — for when the platform spans many domains.
J.R. Storment, Mike Fuller
2nd ed. · 2023 · O'Reilly
ISBN 9781492098348
Makes cloud spend an engineering input: allocation, unit cost, and the storage and compute trade-offs behind pipeline cost.
Alan Beaulieu
3rd ed. · 2020 · O'Reilly
ISBN 9781492057604
The SQL basics: joins, grouping, subqueries, window functions, and transactions, before any optimizer or distributed engine is involved.
Henrietta Dombrovskaya, Boris Novikov, Anna Bailliekova
2021 · Apress
ISBN 9781484268858
Reading execution plans, choosing indexes, and steering join algorithms — the O'Reilly-hosted equivalent of SQL Performance Explained.
Silvia Botros, Jeremy Tinley
4th ed. · 2021 · O'Reilly
ISBN 9781492080503
InnoDB's clustered B+tree, schema and index design, and replication — SQL performance on a real engine in production.
Ralph Kimball, Margy Ross
3rd ed. · 2013 · Wiley
ISBN 9781118530801
Dimensional modeling — facts, dimensions, grain, slowly changing dimensions — still the schema shape that analytical engines are fastest on.
Luc Perkins, Eric Redmond, Jim R. Wilson
2nd ed. · 2018 · Pragmatic Bookshelf
ISBN 9781680505962
Hands-on contrast across relational, key-value, columnar, document, and graph stores — the storage-model trade-offs felt rather than read.
Bennie Haelen, Dan Davis
2023 · O'Reilly
ISBN 9781098139711
The transaction log, MERGE, time travel, and layered tables made concrete: how ACID behaviour is built on object storage.
Tomer Shiran, Jason Hughes, Alex Merced
2024 · O'Reilly
ISBN 9781098148614
Table metadata, snapshots, and catalogs in an open table format, so lakehouse choices rest on how commits actually work.
Bill Karwin
2022 · Pragmatic Bookshelf
ISBN 9798888650011
The schema, query, and application mistakes that quietly wreck correctness and performance, and how to recognize them.
James Densmore
2021 · O'Reilly
ISBN 9781492087823
ELT vs ETL, ingestion patterns, validation, and orchestration in one short read — the practical baseline for a batch pipeline.
Jules S. Damji, Brooke Wenig, Tathagata Das, Denny Lee
2nd ed. · 2020 · O'Reilly
ISBN 9781492050032
The Spark basics: DataFrames, Spark SQL, Structured Streaming, and Delta Lake on Spark 3.
Bill Chambers, Matei Zaharia
2018 · O'Reilly
ISBN 9781491912201
The full API surface and execution model — jobs, stages, tasks, partitions, and the physical plan. Written for Spark 2.x, so pair it with High Performance Spark for current internals.
Holden Karau, Adi Polak, Rachel Warren
2nd ed. · 2026 · O'Reilly
ISBN 9781098145842
Spark 4.x performance: shuffles, skew, join selection, memory management, and when to leave the JVM.
Alex Thomas
2020 · O'Reilly
ISBN 9781492047759
Text processing as a distributed Spark pipeline — where batch data engineering meets ML feature work.
Bartosz Konieczny
2025 · O'Reilly
ISBN 9781098165826
A catalog of recurring data engineering patterns — ingestion, idempotency, error handling, data quality — so designs can be named and compared instead of improvised.
Rui Machado, Helder Russa
2023 · O'Reilly
ISBN 9781098142377
Dimensional modeling and testing expressed as modular, version-controlled SQL transformations inside the warehouse: ELT in practice.
Barr Moses, Lior Gavish, Molly Vorwerck
2022 · O'Reilly
ISBN 9781098112035
Turns "is the data right?" into monitored freshness, volume, and schema checks with lineage and incident response, instead of ad hoc spot checks.
Chad Sanderson, Mark Freeman, B. E. Schmidt
2025 · O'Reilly
ISBN 9781098157623
Producer and consumer agreements on schema and meaning, enforced where data is produced, so breaking changes are caught at the source.
Evren Eryurek, Uri Gilad, Valliappa Lakshmanan, Anita Kibunguchy-Grant, Jessi Ashdown
2021 · O'Reilly
ISBN 9781492063483
Classification, access control, cataloging, and the data lifecycle that compliance and privacy questions depend on.
Tyler Akidau, Slava Chernyak, Reuven Lax
2018 · O'Reilly
ISBN 9781491983867
Event time vs processing time, windows, watermarks, triggers, and exactly-once. The theory to read before any streaming product.
Gwen Shapira, Todd Palino, Rajini Sivaram, Krit Petty
2nd ed. · 2021 · O'Reilly
ISBN 9781492043072
The partitioned, replicated append-only log — producers, consumer groups, ISR replication, and transactional delivery.
Adam Bellemare
2nd ed. · 2025 · O'Reilly
ISBN 9798341622180
Event streams as the system of record — event-carried state, the outbox pattern, CQRS, and schema evolution across services.
Fabian Hueske, Vasiliki Kalavri
2019 · O'Reilly
ISBN 9781491974285
Event time, watermarks, state, and checkpoints in an engine built around streams rather than batches.
Dominik Tornow
2025 · Manning
ISBN 9781633436176
Mental models first: failure, partial failure, consistency, and coordination before any specific system.
Brendan Burns
2nd ed. · 2024 · O'Reilly
ISBN 9781098156343
Reusable container patterns — sidecar, ambassador, adapter, sharded and scatter/gather services, work queues, leader election — from Kubernetes' co-creator.
Sam Newman
2026 · O'Reilly
ISBN 9781098163532
Timeouts, retries, idempotency, back-pressure, and degradation — designing for the failures the first two books taught you to expect.
Fiodar Sazanavets
2026 · Manning
ISBN 9781633435124
The applied capstone: service discovery, configuration, observability, and resilience wired together end to end (with .NET Aspire), turning the patterns into one working system.
Early access from Manning; the O'Reilly listing is not live yet.
Fuheng Wu
2026 · Packt
ISBN 9781807301712
Data, tensor, and pipeline parallelism for training and inference — the distributed patterns above, applied to GPU clusters.
Brendan Burns, Joe Beda, Kelsey Hightower, Lachlan Evenson
3rd ed. · 2022 · O'Reilly
ISBN 9781098110192
Pods, Deployments, Services, and the declarative API — the core objects and the reconciliation model underneath them.
Bilgin Ibryam, Roland Huß
2nd ed. · 2023 · O'Reilly
ISBN 9781098131678
Controller, operator, batch job, and stateful-service patterns — how data platforms (Spark, Kafka, Airflow) run on Kubernetes.
Julian de Ruiter, Ismael Cabral, Kris Geusebroek, Daniel van der Ende, Bas Harenslak
2nd ed. · 2026 · Manning
ISBN 9781633436374
DAGs, data intervals, idempotent tasks, backfills, and deployment on Kubernetes, covering Airflow 3.
Yevgeniy Brikman
3rd ed. · 2022 · O'Reilly
ISBN 9781098116736
Declarative, versioned infrastructure with plan and apply, for the storage and compute your pipelines run on.
Kief Morris
3rd ed. · 2025 · O'Reilly
ISBN 9781098150341
Patterns for structuring, testing, and delivering infrastructure code that outlast any single tool.
Vasundra Srinivasan
2026 · O'Reilly
ISBN 9781098190774
Pipelines for images, audio, video, and embeddings — where the same lifecycle meets unstructured data and GPU consumers.
Ashok Singamaneni, Sarath Chandra Bandaru, Phani Vemuri, Aditya Chaturvedi
Early Release · O'Reilly
O'Reilly ID 0642572283919
Early Release: how LLMs and agents change pipeline authoring, quality checks, and operations — read last, once the fundamentals give you something to judge it against.
David Thomas, Andrew Hunt
20th anniversary ed. · 2019 · Addison-Wesley
ISBN 9780135956977
Orthogonality, tracer bullets, and DRY — habits that keep pipeline code changeable.
Titus Winters, Tom Manshreck, Hyrum Wright
2020 · O'Reilly
ISBN 9781492082781
Programming integrated over time — testing, code review, dependency management, and Hyrum's Law at scale.
Michael T. Nygard
2nd ed. · 2018 · Pragmatic Bookshelf
ISBN 9781680504552
Stability patterns and anti-patterns — circuit breakers, bulkheads, timeouts — learned from production outages.
Michael Feathers
2004 · Pearson
ISBN 9780131177055
Seams and characterization tests — how to change a pipeline nobody fully understands without breaking it.
Laine Campbell, Charity Majors
2017 · O'Reilly
ISBN 9781491925935
Applies SRE practice to data stores: service levels, risk, backup and recovery, and infrastructure as code for databases.
Alex Hidalgo
2020 · O'Reilly
ISBN 9781492076803
How to choose, measure, and report SLOs — the vocabulary behind data freshness and quality targets.