I found the book "Designing Data-Intensive Applications" by Martin Kleppmann to be a good, practical primer on a lot of these topics.
If you want to go deeper on any of the subjects he discusses, his references for every chapter are solid and provide a deeper understanding.