Highly recommended.
This is one of those rare books that lives up to the marketing blurb printed on the back cover. It is a comprehensive discussion on the subject and will be a reference at any level of expertise, from beginner to architect, and you’d better consult it often if playing the architect.
‘Big’ and ‘intensive’ have many nuances and you must know which flavour of these you will be facing. Each design decision you have to take to tackle ‘intensive’ has trade-offs that will bite if you target the wrong performance flavour.
Knowing your system has to extract a target throughput from its data is not enough: is this is a system having many small-request bursty clients or is it a system with few clients extracting huge amounts of data per request; is the system dominated by reads, writes or both, how will it scale, deal with faults, etc.
I think this is the main value of this book: a thorough discussion of existing state-of-the-art solutions with their trade-offs and of situations where some solutions behave better than others. The technologies are presented starting with database internals (and even offering some historical context) and then moving up layer by layer: transactions, data consistency, replication, sharding, etc.
Caveat emptor: at 600+ pages, with no chaff, this is a rather lengthy read even though I found it a fluent read. But that book size is the price to pay for being the reference on the subject.
Website: https://www.oreilly.com/library/view/designing-data-intensive-applications/9781098119058/










