How to handle system design questions during interview if I have no clue on how to get started with that question . For example I got a question like design distributed key value that has high consistency . Even though it is asked frequently, I did not know how to get started . That interview was a disastrous one . I am preparing from grooking the system interview and few YouTube videos . But still am not confident about my design preparation .
What company was this question asked at?
Was asked in jet
Yeah working with distributed systems concepts is a solid way to build fundamentals for design questions. I learnt it the hard way when I was asked to design a distributed lock service, and had absolutely 0 idea on how to get started.
You can start by clarifying the requirements, just walk through the question. What do they mean by a distributed key value store - get examples, understand real use-cases. How do they expect the end user to interact with the key-value store. What do they mean by high consistency? Clarifying the requirements is something you would be doing in a real-world situation as well. Be familiar with basic distributed systems concepts like sharding, consistency, availability, caching, latency, etc
Read about architecture of famous distributed systems. For example, reading about Cassandra made me fairly confident for such questions. A list of systems I read about during my interview preparation: Cassandra LevelDB Dynamo Zookeeper Kafka Neo4j Redis When I say read about these, I mean read about how they work internally. How they store data. How they guarantee consistency. How they support failure recovery. How they ensure correctness of data.
Forget about distributed systems, think about how you can solve this problem for a single host. Then scale. Watch some of Tushar Roy’s system design videos on YouTube.
I would say lookup for the problems faced in distributed systems. When you know what problems can come, you will design in a manner to try and solve those.