Coach Tony has provided the following feedback on your session:
Jing Yan demonstrated a solid grasp of distributed systems fundamentals and showed strong potential for senior-level roles, particularly in designing a distributed cache or key-value store system. Their thought process was structured, and they were able to articulate both core components and advanced design trade-offs effectively.
Areas of Strength:
- Quickly and clearly outlined functional and non-functional requirements without needing much prompting.
- Strong technical illustration using correct data structures like hash maps and doubly linked lists.
- Introduced asynchronous expiration checking jobs to manage stale entries.
- Thoughtfully addressed availability and fault-tolerance, including replica handling, primary-secondary dynamics, and election mechanisms.
- Discussed network partition challenges and touched on reconciliation strategies using timestamp-based conflict resolution.
- Demonstrated a firm grasp of horizontal scaling through consistent hashing and explained its value in dynamic key allocation.
- Able to describe write-ahead logging (WAL) usage to ensure consistency during data migrations.
- Introduced concepts like health checks, coordinators (Zookeeper), and state tracking for hash nodes.
Areas for Improvement:
- Estimation logic should start from business use cases and workload assumptions—not infrastructure like EC2. Lead with intent, then model scale.
- Clarify the mapping from business scenarios to the underlying data model, rather than working backwards from the tech.
- Remember that cache should focus only on high-cost computation results, not all metadata in a KV store.
- The set flow needs to differentiate between cases where a key exists vs. does not exist. Each has different update implications.
- Rather than storing TTL, consider computing expiration time directly and evaluating it when needed.
- For health checks, asynchronous jobs may be insufficient—lean into real-time heartbeat mechanisms for service-level guarantees.
- Continue refining the role of Zookeeper in your system as a coordination and consensus tool.