This section contains information for Developers who wish to work on Zuul itself. This information is not necessary for the operation of Zuul, though advanced users may find it interesting.
The engine of Zuul.
The Scheduler is responsible for receiving events and dispatching them to appropriate components (including pipeline managers, mergers and executors).
It runs a single threaded main loop which processes events received one at a time and takes action as appropriate. Other parts of Zuul may run in their own thread, but synchronization is performed within the scheduler to reduce or eliminate the need for locking in most circumstances.
The main daemon will have one instance of the Scheduler class running which will persist for the life of the process. The Scheduler instance is supplied to other Zuul components so that they can submit events or otherwise communicate with other components.