Design a Customer Agent System that can schedule the next customer, resolve the customer's ask (run given customer function f), and if full, give the customer a waiting time. Each Agent operates at different time (finishes a customer's request differently). However, if the number of customers exceeds the number of agents, let the customer know how long until the next agent is available.
Follow-Up: How do we handle if an agent needs to take a break? Or if an agent got interrupted halfway with a customer's request? (this is basically resembling servers that go down in prod)