Books
- Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions by Gregor Hohpe, Bobby Woolf – it’s a bit lenghty but it gave me a nice overview of what’s possible with messaging systems
- System Design Interview – An insider’s guide by Alex Xu – don’t get the title too literally. It makes a lot of sense to read it even if you’re not going for an interview.
- Monolith to Microservices: Evolutionary Patterns to Transform Your Monolith by Sam Newman – it also provides arguments for when not to use microservices.
- Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans
- Designing Data-Intensive Applications. The Big Ideas Behind Reliable, Scalable, and Maintainable Systems by Martin Kleppmann – very detailed but sometimes may feel overwhelming
- Understanding Distributed Systems: What every developer should know about large distributed applications – by Roberto Vitillo – a lighter alternative to the one above.
Websites
- Design patterns – these have a pretty nice catalog of design patterns with cute examples
- The twelve-factor app – https://12factor.net/ – just by reading this manifesto I learned a lot about good practices
- Scale From Zero To Millions Of Users (ByteByteGo) – link
- High scalability blog – real life architectures – link
- The system design primer – link
Videos
- Real Life AWS Project Architectures playlist by Be a better dev – link