The Internet was done so well that most people think of it as a natural resource like the Pacific Ocean, rather than (en lugar de) something that was man-made. When was the last time a technology with a scale like that was so error-free?

Many applications today are data-intensive, as opposed (opuesto) to compute-intensive. Raw ('potencia bruta' en este contexto) CPU power is rarely a limiting factor for these applications--bigger problems are usually the amount of data, the complexity of data, and the speed at which it is changing.

A data-intensive application is typically built from standard building blocks that provide commonly needed functionality. For example, many applications need to:

  • Store data so that they, or another application, can find it again later (databases)
  • Remember the result of an expensive operation, to speed up reads (caches)
  • Allow users to search data by keyword or filter in various ways (search indexes)
  • Send a message to another process, to be handled asynchronously (stream processing)
  • Periodically crunch a large amount of accumulated data (batch processing)

If that sounds painfully obvious, that's just because these data systems are such a successful abstraction: we use them all the time without thinking too much. When building an application, most engineers wouldn't dream of writing a new data storage engine from scratch, because databases are a perfectly good tool for the job.

But reality is not that simple. There are many database systems with different characteristics, because different applications have different requirements. There are various approaches to caching, several ways of building search indexes, and so on. When building an application, we still need to figure out which tools and which approaches are the most appropriate for the task at hand. And it can be hard to combine tools when you need to do something that a single tool cannot do alone.

This book is a journey through both the principles and the practicalities of data systems, and how you can use them to build data-intensive applications. We will explore what different tools have in common, what distinguishes them, and how they achieve their characteristics.

In this chapter, we will start by exploring the fundamentals of what we are trying to achieve (lograr): reliable, scalable, and maintainable data systems. We'll clarify what those things mean, outline some ways of thinking about them, and go over the basics that we will need for later chapters. In the following chapters we will continue layer by layer, looking at different design decisions that need to be considered when working on a data-intensive application.


TikTok Script: The 3 Pillars of Modern Software

[HOOK - 0-3s] "Why do some apps crash under pressure while others scale to billions of users? It all comes down to three principles."

[SETUP - 4-15s] Here's the thing most people don't realize: modern applications aren't limited by processing power anymore. The real challenge? Data. The sheer volume of it, its complexity, and how fast it changes.

[MAIN CONTENT - 16-50s] Think about it—every app you use is built from the same building blocks:

  • Databases to store information
  • Caches to speed up responses
  • Search indexes to find what you need
  • Message queues for async processing
  • Batch systems to crunch massive datasets

But here's where it gets interesting: there's no one-size-fits-all solution. Different apps need different tools, and combining them effectively is an art form.

[THE THREE PILLARS - 51-75s] So what separates great systems from mediocre ones? Three core principles:

  1. Reliability - The system works correctly, even when things fail
  2. Scalability - It handles growth without breaking
  3. Maintainability - Engineers can evolve it without going insane

[CLOSER - 76-85s] Master these three, and you're not just building apps—you're architecting systems that stand the test of time.

Want to dive deeper? Drop a comment and let me know which pillar you want explained next.

[END - Visual text overlay] "Build systems that scale 🚀"