Designing Data-Intensive Applications

Books recommended with this one:

Comments and mentions from HN threads:

Ask HN: What's the best computer science book you've read recently?

nsm: He does a great job of distilling storage systems to concepts and discussing conceptual trade offs instead of focusing on particular storage products. Plenty of footnotes to relevant research papers too.

Mentions by: blain_the_train

Ask HN: What language-agnostic programming books should I read?

fatjonny: It primarily deals with the current state of storing data (databases, etc) starting with storing data on one machine and expanding to distributed architectures...but most importantly it goes over the trade-offs between the various approaches. It is at a high level because of the amount of ground it covers, but it contains a ton of references to dig in deeper if you want to know more about a specific topic.

silentsea90: Great for getting a lay of the land on distributed systems problems. I haven't ever studied distributed systems formally though, so I wonder how this differs from that.

Ask HN: What books had the greatest effect on how you structure your code?

blain_the_train: Not really about structuring code, but I think stepping back and realizing your code is part of a larger system is very illuminating and influence how you write code.

Ask HN: Learning NoSQL, papers and books

manigandham: Read this book for in-depth details

zitterbewegung: A good book all around for creating application and management of the data that they provide including NoSQL.

hdra: I highly recommend Martin Kleppmann's Designing Data Intensive Applications. It will not only help you understand what's "SQL" and "NoSQL" data stores, it also covers the differences between each of them, what problems they are designed to solve, how they try to solve it, and if it'll help with your problems as well.

Mentions by: sciurus

Ask HN: CS and programming books of 2017

DeceiveEither: I have recommended this to everyone.

Mentions by: wavesandwind

Ask HN: Books you should have read when you start a career in SE / CS?

jpamata: Helped me understand a bit more about databases and systems. The book is also very approachable and has the perfect blend of application and theory at a high level that anyone approaching the industry for the first time stands to gain a lot from reading it.

collinf: This book covers distributed systems as well as databases, data-warehousing, and data-processing.

sp527: This should honestly be the top-voted answer. But Kleppman's book is genuinely and outstandingly useful for understanding the various components involved in modern backend architectures.

Ask HN: What are the most fundamental books on computer science?

cben: This gives you a phenomenally good survey of concepts and practice of distributed systems. This is more software engineering than pure CS, but in my view you can't approach the field of distributed systems without blending both anyway.

Ask HN: Whats the best book on your favorite programming language or topic?

pepper_sauce: It's the other half of software engineering as far as I'm concerned.