Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutionsby 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 guideby 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 Monolithby Sam Newman – it also provides arguments for when not to use microservices.
Domain-Driven Design: Tackling Complexity in the Heart of Softwareby 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.
Design patterns – these have a pretty nice catalog of design patterns with cute examples