Sistem Design Flashcards
For a Read-Heavy System — Consider using a Cache.
EG:
1.Redis (for REmote DIctionary Server)
- an open source, in-memory, NoSQL key/value store that is used primarily as an application cache or quick-response database.
2.Memcached is a distributed memory caching system designed for ease of use and simplicity and is well-suited as a cache or a session store.
For a Write-Heavy System — Use Message Queues for async processing
For a Low Latency Requirement — Consider using a Cache and CDN.
FOR ACID (𝐀tomicity, 𝐂onsistency, 𝐈solation, 𝐃urability) Compliant DB — Go for RDBMS/SQL Database
Have unstructured data — Go for NoSQL Database.
Have Complex Data (Videos, Images, Files) — Go for Blob/Object storage.
Complex Pre-computation — Use Message Queue & Cache.
High-Volume Data Search — Consider search index, tries, or search engine.
Scaling SQL Database — Implement Database Sharding.
High Availability, Performance, & Throughput — Use a Load Balancer.
Global Data Delivery — Consider using a CDN
Graph Data (data with nodes, edges, and relationships) — Utilize Graph Database.
High-Performing Database Queries — Use Database Indexes.
Bulk Job Processing — Consider Batch Processing and Message Queues.
Server Load Management & Preventing DOS Attacks- Use a Rate Limiter.