List functional requirements for the system (Ask the chat bot for hints if stuck.)...
event_id: 16 bytes (UUID)event_type: 4 bytes (integer or short string)description: Assume average 128 bytes (could vary)start_time, end_time, and arrival_time: Assume 8 bytes each (typically stored as 64-bit timestamps)Define what APIs are expected from the system...
Store event in Nosql DB, like Cassandra.
Event table has {
event_id
description
event_type
timestamp
status
start_time
end_time
}
Explain how the request flows from end to end in your high level design. Also you could draw a sequence diagram using the diagramming tool to enhance your explanation...
Dig deeper into 2-3 components and explain in detail how they work. For example, how well does each component scale? Any relevant algorithm or data structure you like to use for a component? Also you could draw a diagram using the diagramming tool to enhance your design...
Explain any trade offs you have made and why you made certain tech choices...
Try to discuss as many failure scenarios/bottlenecks as possible.
What are some future improvements you would make? How would you mitigate the failure scenario(s) you described above?