Architecture notes - part 1
Topic | Description | Key Concepts & Strategies | Recommended Resources / Links |
---|---|---|---|
Distributed Systems Fundamentals | Core principles behind designing systems that work across multiple nodes in a scalable and resilient way. | • Load balancing & scalability • Data partitioning (sharding) • Fault tolerance & recovery • CAP theorem & consistency models |
• Distributed Systems for Fun and Profit • CAP Twelve Years Later |
Caching Strategies | Techniques to improve performance by temporarily storing data closer to the application/user. | • In‑memory vs. distributed caching • Cache invalidation & expiration policies • Balancing consistency vs. performance |
• An Introduction to Caching – DigitalOcean • Redis Introduction |
Architectural Patterns | High‑level approaches to system organization for scalability, maintainability, and resilience. | • Microservices vs. monolithic architectures • Event‑driven architecture • Service-oriented patterns • When to centralize cross‑cutting concerns vs. decentralize them |
• Microservices vs Monolith: Which Architecture is Right for You • Event‑Driven Architecture: A Key to Modern Software |
Rate Limiter Pattern | Patterns for controlling the rate of incoming requests to prevent system overload. | • Fixed window, sliding window, and token bucket algorithms • Trade‑offs between simple implementation and smooth request distribution |
• How to Build a Rate Limiter • Implementing a Rate Limiter in Node.js |
API Gateway & Service Mesh Patterns | Patterns for managing and routing traffic to microservices and handling cross‑cutting concerns. | • Centralized API gateway vs. decentralized service mesh • Authentication, routing, and load balancing at the gateway • Observability and security for inter‑service calls |
• What is an API Gateway? – NGINX • What is a Service Mesh? – Istio |
Distributed Cache Pattern | Patterns for caching data across multiple nodes to improve system performance and reduce latency. | • Ensuring cache coherence • Invalidation strategies and expiration policies • Balancing data freshness with performance benefits |
• Distributed Cache in Spring – Baeldung • Redis Caching – Redis Documentation |