Elevator Control System
The Elevator Project focuses on designing and implementing a robust, fault-tolerant control system for n elevators operating across m floors in a distributed environment. The system must guarantee that all hall and cab calls are serviced, that button lights represent a service guarantee, and that no calls are lost — even under failure conditions such as network disconnection, packet loss, software crashes, or temporary power loss.
A key requirement is resilience: elevators must continue operating independently when disconnected from the network, retain active calls across crashes or power interruptions, and recover automatically without manual reinitialization. The system must ensure consistent behavior of hall button lights across workspaces under normal conditions, while maintaining correct operation even during unreliable networking. Cab calls are local to each elevator, whereas hall calls must be coordinated across the distributed system.
In addition to reliability, elevators must behave sensibly and efficiently. They should avoid unnecessary stops, respect travel direction semantics when clearing hall calls, and manage door timing and obstruction logic correctly. Once the core guarantees are satisfied, the system should distribute calls among elevators to minimize service time and optimize overall efficiency.
The project emphasizes distributed systems design, state synchronization, failure recovery, real-time control logic, and scalable configuration (supporting variable numbers of elevators and floors without hard-coding). It represents a practical exercise in building a resilient, concurrent control system with strong service guarantees under realistic operational constraints.
RustConcurrent Systems