All recommendations
Designing Data Intensive Applications
by Martin Kleppmann, Chris Riccomini
Martin Kleppmann wrote it after years of working on real distributed systems, and it reads like someone explaining why things are the way they are not a spec sheet, not a tutorial for one specific tool. It walks through how databases actually store your data on disk, why replication is harder than it sounds, what happens when your data gets too big for one machine, and why "consistency" means five different things depending on who you ask.