Explain Databases, indexing, asynchronous programming, etc.
For the hands-on portion, implement an event-driven scheduler for asynchronous tasks with dependencies. Build an in-memory ID index, start every dependency-free task immediately, and return task IDs in completion order, breaking simultaneous completion ties lexicographically.
Use def execution_order(tasks):, where each task is a dictionary with id, positive duration, and a depends_on list. Return a list of task IDs.
def execution_order(tasks):