Skip to content

Thyago's Notes

My note-taking place

  • About me

Category: Designing Data-Intensive Applications

August 3, 2021

Chapter 11: Stream Processing

Designing Data-Intensive Applications chapter-summary No comments

This chapter discusses the purpose of event streams, how to process them, and some key differences between them and batch processing. Message brokers process event streams, and there are two […]

July 25, 2021

Chapter 10: Batch processing

Designing Data-Intensive Applications chapter-summary No comments

This chapter starts by discussing Unix tools and pipes and how they are composed to solve larger problems. Later, the same principles are derived to explain how MapReduce and other […]

Chapter 9: Consistency and Consensus

Designing Data-Intensive Applications chapter-summary No comments

This chapter, as the title says, touches on both consistency and consensus from different angles. The first concept it dishes out is about linearizability, a consistency model that tries to […]

July 7, 2021

Chapter 8: The Trouble with Distributed Systems

Designing Data-Intensive Applications chapter-summary No comments

In distributed systems, things will be wrong and the systems engineers should be creating mechanisms to avoid that a failure in components affects the whole availability of the system. We […]

June 27, 2021

Chapter 7: Transactions

Designing Data-Intensive Applications chapter-summary No comments

Many things can go wrong with systems, such as: The software or hardware might fail at the middle of an operation Network failures can cause unexpected cut offs in the […]

June 20, 2021

Chapter 6: Partitioning

Designing Data-Intensive Applications chapter-summary No comments

Partition is the technique of splitting the data, or shard, across many database instances. It is mainly intended to reduce the load on single nodes, so the developer must ensure […]

June 13, 2021

Chapter 5: Replication

Designing Data-Intensive Applications chapter-summary No comments

As mentioned in the introduction of part II, the reasons to replicate data are: Reducing latency by leaving data close to users Allow users to continue their work even if […]

Part II: Distributed Data

Designing Data-Intensive Applications chapter-summary No comments

This part of the book talks about data that lives in multiple nodes. An application that needs to be distributed usually has to do so due to some factors, such […]

June 6, 2021

Chapter 4: Encoding and Evolution

Designing Data-Intensive Applications chapter-summary No comments

One thing is sure, the application will change over time and the data schema underlying it certainly will too. Changing data schema, sometimes an ALTER table, or adding a new […]

June 4, 2021

Chapter 3: Storage and Retrieval

Designing Data-Intensive Applications chapter-summary No comments

Databases, at the most fundamental level, should do two things well with your data: store and be able to retrieve it later. The simplest database possible, considering a key-value one, […]

Posts navigation

Older posts
  • About me
Proudly powered by WordPress | Developed by DevriX.