บทที่ 20-28 · Topics Summary

บทที่ 20-28 Summary

สรุป Topics ของบทที่ 20-28 สำหรับการเตรียมตัวสัมภาษณ์ System Design

20. Metrics Monitoring

Time-series DB, Push/Pull Model, Alerting, Visualization, Grafana

21. Ad Click Aggregation

Stream Processing, MapReduce, Lambda Architecture, Deduplication

22. Hotel Reservation

Concurrency, Optimistic/Pessimistic Lock, Database Constraints, Overbooking

23. Distributed Email Service

SMTP/IMAP, Metadata DB, Elasticsearch, Email Deliverability

24. S3-like Object Storage

Object Storage, Data Nodes, Durability 99.999999%, Erasure Coding

25. Gaming Leaderboard

Redis Sorted Set, Skip List, Sharding, Real-time Updates

26. Payment System

Pay-in/Pay-out, PSP Integration, Double-entry Ledger, Reconciliation

27. Digital Wallet

Event Sourcing, Saga Pattern, TC/C, CQRS, Distributed Transactions

28. Stock Exchange

Matching Engine, Order Book, Sequencer, High Availability, Determinism

Key Patterns

Data Processing

Distributed Transactions

Storage Patterns

Interview Tips

  1. Clarify Scope: ถามคำถามเพื่อกำหนดขอบเขต
  2. Scale First: ประมาณ QPS, Storage, Users ก่อน
  3. API + Data Model: เสนอตั้งแต่เริ่มต้น
  4. Trade-offs: อธิบายข้อดีข้อเสียเสมอ
  5. Bottlenecks: พูดถึงคอขวดและวิธีแก้ไข

เนื้อหานี้อ้างอิงจาก ByteByteGo - System Design Interview - An Insider's Guide