Foundational principles, advanced concepts, & latest trends in designing scalable, practical, and robust systems.
- Foundations of System Design
- Scalability
- Database Systems
- Caching Mechanisms
- API Design
- Microservices Architecture
- Security Considerations
- Emerging Technologies and Future Trends
Understanding the basic principles and challenges is crucial before diving into more complex systems. Here we discuss classic problems and solutions in system design.
- The Art of Scalability
- System Design Primer
- Distributed systems for fun and profit
- Martin Kleppmann on Designing Data-Intensive Applications
- Scalable Web Architecture and Distributed Systems
- Introduction to Architecting Systems for Scale
- System Design Interview – An insider's guide
- Architecture Patterns with Python
- Scalability Rules: 50 Principles for Scaling Web Sites
- High Performance Browser Networking
- Patterns of Enterprise Application Architecture by Martin Fowler
- Software Architecture Patterns by Mark Richards
- Clean Architecture by Robert C. Martin
Strategies to handle growth in user base and data volume.
- Martin Fowler on Scalability
- Google Research on Building Scalable Systems
- Scalable Internet Architectures by Theo Schlossnagle
- Building Microservices by Sam Newman
- The Mythical Man-Month by Frederick P. Brooks Jr.
- Release It! Design and Deploy Production-Ready Software
- Site Reliability Engineering: How Google Runs Production Systems
- Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
- Antifragile: Things That Gain from Disorder by Nassim Nicholas Taleb
- Cloud Native Patterns: Designing change-tolerant software by Cornelia Davis
- Design Patterns: Elements of Reusable Object-Oriented Software
- Fundamentals of Software Architecture: An Engineering Approach
- Microservices Patterns: With examples in Java
- Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation
- Brewer's CAP Theorem
- Dynamo: Amazon’s Highly Available Key-value Store
- Sharding Patterns
- Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
- Database Reliability Engineering: Designing and Operating Resilient Database Systems
- Readings in Database Systems, 5th Edition
- SQL Performance Explained Everything Developers Need to Know about SQL Performance
- NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence
- High Performance MySQL: Optimization, Backups, and Replication
- Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement
- MongoDB: The Definitive Guide: Powerful and Scalable Data Storage
- Mastering PostgreSQL 12: Advanced techniques to build and administer scalable and reliable PostgreSQL database applications, 3rd Edition
- Redis in Action
- Practical MongoDB: Architecting, Developing, and Administering MongoDB
- Cassandra: The Definitive Guide: Distributed Data at Web Scale