Posts

Showing posts with the label System Design

System Design Techniques

1. Read-Heavy System: Consider using a cache. 2. Low Latency Requirement: Utilize cache and CDN. 3. Write-Heavy System: Use message queues for async processing. 4. ACID Compliance: Opt for RDBMS or SQL Database. 5. Unstructured Data: Choose NoSQL Database. 6. Complex Data (Videos, Images, Files): Go for Blob/Object storage. 7. Complex Pre-computation: Use Message Queue & Cache. 8. High-Volume Data Search: Consider search index or search engine. 9. Scaling SQL Database: Implement Database Sharding. 10. High Availability, Performance, & Throughput: Use a Load Balancer. 11. Global Data Delivery: Employ a CDN. 12. Graph Data: Utilize Graph Database. 13. Scaling Various Components: Implement Horizontal Scaling. 14. High-Performing Database Queries: Use Database Indexes. 15. Bulk Job Processing: Consider Batch Processing & Message Queues. 16. Server Load Management: Use a Rate Limiter. 17. Microservices Architecture: Utilize an API Gateway. 18. Redundancy for Single Point of Fail...