Designing Data-Intensive Applications is the book I wish I'd read sooner
On Designing Data-Intensive Applications by Martin Kleppmann
Most books about databases teach you one tool. This one explains why the tools are built the way they are, and what you give up with each choice. Replication, partitioning, transactions and what "consistent" really means all get explained without any sales pitch.
It's not quick. I read a chapter, thought about it for a few days, then came back. After the chapter on transactions I started asking better questions about what could go wrong when two requests hit the same row at once. If you build anything with a database behind it, this is worth the effort.
Want to read it?
- Borrow from mebmrauf Bashundhara, Dhaka