[0](https://www.oreilly.com/library/view/designing-data-intensiv...)
https://www.oreilly.com/library/view/designing-data-intensiv...
For example, I really enjoyed and often go back to:
- https://www.oreilly.com/library/view/building-event-driven-m...
- https://www.oreilly.com/library/view/designing-data-intensiv...
- https://www.manning.com/books/100-go-mistakes-and-how-to-avo...
- https://www.amazon.com/Systems-Performance-Brendan-Gregg/dp/...
And more recently:
- https://www.manning.com/books/build-a-large-language-model-f...
- https://www.manning.com/books/the-creative-programmer
- https://www.manning.com/books/the-programmers-brain
- https://www.amazon.com/Understanding-Software-Addison-Wesley...
I also find books about specific technologies that indeed run the risk of being deprecated after a few years to be useful too
- https://www.oreilly.com/library/view/networking-and-kubernet...
- https://www.brendangregg.com/bpf-performance-tools-book.html
Furthermore, nothing keeps you from reading books about topics peripheral to computer science, say to keep up with the general vibes:
- https://www.amazon.com/Probabilistic-Machine-Learning-Introd...
- https://www.amazon.com/Deep-Learning-Foundations-Christopher...
- https://www.amazon.com/Joy-Abstraction-Exploration-Category-...
I find that all of these contribute significantly to my growth as an engineer.
[1] Designing Data-Intensive Applications:
https://www.oreilly.com/library/view/designing-data-intensiv...
https://www.oreilly.com/library/view/designing-data-intensiv...
- Database internals
https://www.oreilly.com/library/view/database-internals/9781...
Martin has had a material impact on my career. I don't think I would have gotten my job at LinkedIn if it wasn't for his book, Designing Data-Intensive book: https://www.oreilly.com/library/view/designing-data-intensiv...
I learned how to build a web application with FE, BE, DB, and distributed workers for my first job. But it wasn't until I read his book that I understood the enormous gap between building web apps and planet-scale web applications. The book saved me from bombing my interviews.
https://github.com/noahgift also has a lot of content that is worth following.
https://www.oreilly.com/library/view/designing-data-intensiv...
Ps, great and still highly relevant resource covering all the major database system designs, their advantages and drawbacks: https://www.oreilly.com/library/view/designing-data-intensiv...
https://www.oreilly.com/library/view/designing-data-intensiv...
Just guessing, you'd think Starlink would be more experienced in that area than either Tesla or SpaceX? I suppose there are things like remote software updates and internal working databases to manage at SpaceX and Tesla, but it seems managing satellite traffic is a closer match.
Who knows, they might be, I really don't trust WaPo reporting anymore.
https://www.oreilly.com/library/view/designing-data-intensiv...
The chapter "Data Structures That Power Your Database" offers a great overview of various storage mechanisms of databases
Here's the table of contents: https://www.oreilly.com/library/view/designing-data-intensiv...
It seems to cover roughly the same areas and range as the book you mentioned, Database Systems: The Complete Book (2008). http://infolab.stanford.edu/~ullman/dscb.html
You can do most anything with the wrong tool. I'd rather ask the question, when is PostgreSQL or MySQL the wrong tool for the job. I'm not sure I'm qualified to answer this, but I can point you in the direction of a book that has given me a much better understanding of the space. https://www.oreilly.com/library/view/designing-data-intensiv...
That said, I'll add MDN Web Docs [1] to the pile of links here as a good resource for practical details. If you're interested in the fundamentals of large-scale data-driven distributed systems (into which category many larger web applications fit), Designing Data-Intensive Applications [2] is quite excellent. NNGroup [3] has a lot of great foundational material on basic concepts of UX, usability, interaction, etc. for digital products.
[1] https://developer.mozilla.org/en-US/ [2] https://www.oreilly.com/library/view/designing-data-intensiv... [3] https://www.nngroup.com
https://www.oreilly.com/library/view/designing-data-intensiv...
That said, there are plenty of resources that have been helpful to me:
1) http://highscalability.com/
2) http://shop.oreilly.com/product/0636920032175.do
3) https://github.com/donnemartin/system-design-primer
Hope this helps!
I'm about a quarter to half of the way through and it's been interesting and quite thorough even though it's still a "beta" book. The content is a little high level so some familiarity with distributed systems principles is useful but the text is very approachable and easy to understand (so far).
I got it after seeing several recommendations in other HN threads so I'm not the only person that has found it useful.
The downside is that I pre-ordered the book in November, expecting it in April and it now shows November of this year as the release date on Amazon. I'd be surprised to get it this year at all. Haven't found other books of similar scope and recency though, so I guess I'll wait some more.
http://shop.oreilly.com/product/0636920032175.do?sortby=publ...
Designing Data-Intensive Applications
The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
By Martin Kleppmann
http://shop.oreilly.com/product/0636920032175.do
The author has great sense of humor.
[0] http://aosabook.org/en/index.html
[1] http://martinfowler.com/books/eip.html
https://www.oreilly.com/library/view/designing-data-intensiv...
You can generate distributed monotonic number sequences with a Lamport Clock.
https://en.wikipedia.org/wiki/Lamport_timestamp
The wikipedia entry doesn't describe it as well as that book does.
It's not the end of the puzzle for distributed systems, but it gets you a long way there.
See also Vector clocks. https://en.wikipedia.org/wiki/Vector_clock
Edit: I've found these slides, which are a good primer for solving the issue, page 70 onwards "logical time":
https://ia904606.us.archive.org/32/items/distributed-systems...