Data-Intensive Applications

Understand the internals of data systems — storage engines, replication, partitioning, transactions, batch processing, and stream processing. Based on the concepts from Martin Kleppmann's "Designing Data-Intensive Applications."
Level: Intermediate
Study Time: 27h
Lessons: 32
Quizzes: 505
Course Overview

Most software engineers use databases every day without understanding why those databases behave the way they do. They know that Postgres supports transactions and Redis is fast, but they cannot explain why Postgres uses B-trees, when an LSM-tree would be better, or what actually happens when two transactions conflict. This course closes that gap.

The course covers the full stack of data-intensive application design: storage engines, distributed data (replication, partitioning, transactions, consensus), encoding and evolution, batch and stream processing, data quality and governance, and the operational patterns that tie everything together.

By the end of this course, you will have the mental models to evaluate database choices, design data architectures, and debug distributed system failures — because you understand the underlying mechanics, not just the marketing materials.

Data-Intensive Applications
Enroll Now

Get instant access to all current and upcoming courses by subscribing.