Scheduler 02: Durable Job Store

The board that moves the schedule off one machine and onto disk. Follows Scheduler 01: The Tick Loop, and
Before you start. This series builds a small distributed job scheduler, a program whose only task is to fire off other jobs - a nightly backup, an hourly report - on a repeating schedule, without missing one and without running it twice. So far, our small scheduler can check a list of jobs against the clock and run whichever ones are due. It computes each job’s next run as a fixed point in time rather than “five minutes from now,” which is what stops the schedule from creeping late. And when a job runs longer than the gap between its own runs, it already has three answers to choose from: skip that run, hold it until the current one finishes, or start it anyway alongside the one still going. All three live in one list, inside the memory of one running program, and that is exactly what breaks next.