How deep do system designs go for e5 bar at Facebook?
If I say 'We can use a DHT based key value store such as Cassandra here'
I assume they'll ask: "what makes it DHT?"
I say "It's decentralized, where each node is responsible for a range of hashed key values distributed on a ring of nodes in counter clock wise fashion; it uses consistent hashing. Each node maintains routing tables, and will forward to another node if it receives a request to store/read a value whose hash(key) does not belong here. This relieves single point of failure seen in a centralized master->slave set up, and also minimizes the number of data items to be migrated when nodes join and leaves the network.'
Will they keep digging, and ask me to describe the exact data structure of the node's routing table, the exact rules for forwarding to another node, the exact logic for handling joins and exits of nodes ,etc. ie, stuff that you really need to read the nitty gritty details of the Chord/Cassanda paper for? Or will the above qualitative description suffice?
This is for general backend system design bar for E5, not specialist roles.
Another example: "We can use versioning to detect write conflicts, and let either the application layer logic to explicitly resolve, or resolved based on last write."
Will they ask me to describe the exact mechanism and data structure of versioning (ie, vector clocks) ?
If any experienced interviewer could shed some light so I can appropriate target my study plans, that'll be great!