-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
52 additions
and
0 deletions.
There are no files selected for viewing
Binary file added
BIN
+51.9 KB
.../2021-02-03-book-review-designing-data-intensive-applications/images/cover.jpeg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
52 changes: 52 additions & 0 deletions
52
.../articles/2021-02-03-book-review-designing-data-intensive-applications/index.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
--- | ||
title: "Book Review: Designing Data-Intensive Applications" | ||
date: "2022-03-07" | ||
layout: post | ||
path: "/book-review-designing-data-intensive-applications/" | ||
categories: | ||
- Book Review | ||
- Architecture | ||
- Distributed Systems | ||
related: | ||
- /book-review-software-architect-elevator/ | ||
draft: false | ||
description: "If you want to dive into distributed systems, there's no better choice right now than Designing Data-Intensive Applications" | ||
image: ./images/cover.jpeg | ||
|
||
--- | ||
|
||
<figure class="figure"> | ||
<img src="./images/cover.jpeg" alt="Designing Data-Intensive Applications" /> | ||
</figure> | ||
|
||
If you're in the mood for a challenging book, then _Designing Data-Intensive Applications_ (often known as DDIA) is exactly what you need. It packs an insane amount of content inside its ~500 pages. I can't think of a better candidate to learn about distributed systems at scale. | ||
|
||
## Full Attention Demanded | ||
|
||
The book covers distributed systems. General knowledge is probably required, otherwise, it will be a bit too much for you. You don't need to be a Big Data specialist, though. | ||
|
||
Before you start with this one, beware: This is a pretty heavy book to read. Be prepared to read chapters multiple times. I've read the consensus chapter quite a few times already, and I still don't feel confident that I know what's going on. | ||
|
||
## Each Chapter is a Mini Book | ||
|
||
There are twelve chapters in the book. Each chapter centers around one main topic, such as: | ||
|
||
- Replication | ||
- Partitioning | ||
- Transactions | ||
- Consensus | ||
- Streams | ||
|
||
Most chapters start relatively easy, but they go into extensive _depth_. Like, they go up to the very edge of the state-of-the-art. You'll notice by the number of references to recent research papers. | ||
|
||
## The Oracle of System Design | ||
|
||
System Design is a big part of interviewing for [BigTech](https://en.wikipedia.org/wiki/Big_Tech) (FAANG and others), starting from senior positions. DDIA touches on several topics that are quite relevant for that kind of interview. Can this book replace the experience of designing distributed systems at scale? No, of course not. But, it's an excellent way to start building a solid base. Since I read DDIA, I've noticed that I pick up more details when I read the engineering blog of some companies. | ||
|
||
Besides, the gigantic list of references for every chapter is an invaluable resource if you want to dive deeper into any of these topics. No kidding, there are like 100 references per chapter. | ||
|
||
## Verdict | ||
|
||
Don't get fooled: If you want to power through the whole book you're going to invest some serious effort. It's not some light reading just before going to bed. | ||
|
||
Even then, it's written clearly and concisely, so it won't make your life unnecessarily hard. Despite the cognitive load, it's one of the best purely technical books I've read in a while. It gets ⭐⭐⭐⭐⭐ stars from me. |