#3811·quartznet

Quartz.NET 4.2

Author: lahmaCreated Sep 19, 2026Updated Sep 20, 2026
Labels4.xtype:epic

Theme: "Quartz.NET, declared." 4.0 made the API a promise, 4.1 made schedulers runtime-managed and the dashboard remote-capable. 4.2 closes the two gaps every comparison names — declaring a job in one attribute with the cron checked by the compiler, and telling one job to run after another — and publishes performance numbers a competitor cannot wave away. Everything is additive (default interface members, context objects, nullable columns); the one schema change is a generated database/migrations/4.2/ that is safe under a mixed 4.1/4.2 cluster.

Decided by @lahma on 2026-09-14 from the landscape analysis (TickerQ 10.4.0, Hangfire 1.8.25, our 4.1 inventory and benchmark suite): scope A–G below; continuations store-owned with the schema change; the analyzer inside Quartz.nupkg; no outward reaction to TickerQ's comparison table or benchmark PR — profile where we lag instead.

Order Item Issue After
0 AGENTS.md trimmed so 4.2's conventions fit #3810
0 Comparison page, coming-from guides, stale claims #3808 — (docs only, runs beside anything)
1 Profile every surface where we lag (D1) #3802
2 Cron next-occurrence fast path #3801 D1's ranking
3 Head-to-head harness + published numbers (D2), RAMJobStore fire-path cuts (D3) #3802 #3801
4 Quartz.Analyzers: compile-time cron/timeout checks #3803
5 [QuartzJob]/[CronTrigger] + source generator #3804 #3803
6 Continuations: store + API + the 4.2 migration #3805
7 Continuations: dashboard, HTTP API, files, docs #3806 #3805
8 Retries exhausted + jitter #3807 #3805
9 ADO-backed execution history (same migration folder) #3771 #3805
10 Store-attached dashboard targets #3772 #3771
filler Health check: stalled firing #3809

Left for 4.3, unassigned: #3770 (operation catalogue), #3773 (agent target), #3774 (fleet pane), #3775 (Aspire resource), #3687 (document DB), #3720 (Quartz.Cron — interesting only after #3801 makes the parser fast).

Gates before the tag, as 4.1's: pack dry run (14 nupkg + 10 snupkg, 0 warnings, floors unchanged, analyzers/dotnet/cs/Quartz.Analyzers.dll present); baseline delta additions only, DIMs marked; database/ = the generated 4.2 migration and nothing else (VerifyMigrations); fresh-user consumer from the pack; a PostgreSQL soak with continuations and a runtime tenant; docs check-links + lint + VerifyDocsSnippets; examples smoke + trimmed and native-AOT canary; and one new gate: the 4.2 migration applied under a running 4.1 node, then the node rolled to 4.2, with no lost or doubled firing. Release notes accumulate in the v4.2.0 draft as items merge.