- Automated tests, run on every push
- 110
- Before a silent elevator is taken out of service
- 1 s
- Passengers delivered in 20 stress runs
- 48 / 48
Architecture
How it works
- 01
Separate nodes
The scheduler, each elevator and each floor run as separate nodes. They talk to each other only through UDP messages.
- 02
State machines
Every node is a state machine running on its own threads.
- 03
Timed requests
Floor nodes replay a list of timed passenger requests, sending each one to the scheduler when its time comes.
- 04
Dispatch by cost
For each request, the scheduler asks every elevator at once what taking it would cost: the time to reach the pickup floor, plus the delay the extra stop adds for passengers it already has planned. The cheapest elevator gets the request.
When things go wrong
Faults it handles
- An elevator gets stuck
- The scheduler takes it out of service and moves its waiting requests to other cars.
- An elevator stops answering
- It gets the same treatment: out of service, with its waiting requests moved to other cars.
- No elevator is available
- Requests wait until an elevator can take them.