Goldpath.Jobs
0.1.0-preview.8
dotnet add package Goldpath.Jobs --version 0.1.0-preview.8
NuGet\Install-Package Goldpath.Jobs -Version 0.1.0-preview.8
<PackageReference Include="Goldpath.Jobs" Version="0.1.0-preview.8" />
<PackageVersion Include="Goldpath.Jobs" Version="0.1.0-preview.8" />
<PackageReference Include="Goldpath.Jobs" />
paket add Goldpath.Jobs --version 0.1.0-preview.8
#r "nuget: Goldpath.Jobs, 0.1.0-preview.8"
#:package Goldpath.Jobs@0.1.0-preview.8
#addin nuget:?package=Goldpath.Jobs&version=0.1.0-preview.8&prerelease
#tool nuget:?package=Goldpath.Jobs&version=0.1.0-preview.8&prerelease
Goldpath.Jobs
L2 of the Goldpath execution ladder: scheduled and long-running work on a clustered Quartz.NET persistent store, with the Goldpath run model on top — chunked, checkpointed, resumable runs; per-item failure isolation; live progress and deadline prediction; completion chaining.
Shape
// Worker (executor — one cluster per worker kind):
builder.AddGoldpathJobs<WebApplicationBuilder, WorkDbContext>(jobs =>
{
jobs.ConnectionName = "workdb";
jobs.AddCalendar("banking-tr", GoldpathCalendars.BusinessDays(holidayTable));
jobs.AddJob<EodReconciliationJob>(j =>
{
j.Cron = "0 30 1 * * ?";
j.Calendar = "banking-tr";
j.Deadline = TimeSpan.FromHours(5.5);
j.MaxParallelChunks = 4;
});
});
// API head (management — verbs over every fleet, executes nothing):
builder.AddGoldpathJobsManagement<WebApplicationBuilder, OrdersDbContext>(jobs => jobs.ConnectionName = "ordersdb");
// DbContext (the store and the run model ride normal migrations):
protected override void OnModelCreating(ModelBuilder modelBuilder) => modelBuilder.AddGoldpathJobs();
Author jobs as chunked work:
public sealed class EodReconciliationJob(OrdersDbContext db) : IGoldpathJob
{
public async Task<GoldpathJobPlan> PlanAsync(GoldpathJobContext ctx, CancellationToken ct)
=> GoldpathJobPlanner.ByRange(await db.Payments.CountAsync(ct), chunkSize: 500);
public async Task ExecuteChunkAsync(GoldpathJobChunk chunk, GoldpathJobContext ctx, CancellationToken ct)
{
foreach (var payment in await LoadRangeAsync(chunk.Payload, ct))
{
if (!await ReconcileAsync(payment, ct))
{
chunk.ReportItemFailure(payment.Id.ToString(), "ledger mismatch"); // repair queue, run continues
}
}
}
}
Guarantees
- Exactly-once firing across the cluster (Quartz clustered store +
DisallowConcurrentExecution). - Kill-9 mid-run → recovery re-fires on a healthy node → the runner resumes from the last checkpoint (at most one chunk repeats; its claim resets).
- A poisoned item never stops the night: item failures isolate into the repair queue; a chunk exhausting its attempts isolates too, the rest of the run continues.
- State writes are batched per chunk, never per item.
The qrtz_ schema and the run model are EF model contributions — normal migrations, no
side-channel SQL. Admin API + dashboard arrive with S2/S2b (see docs/rfc/goldpath-jobs.md).
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Goldpath.Abstractions (>= 0.1.0-preview.8)
- Goldpath.Data (>= 0.1.0-preview.8)
- Goldpath.Sdk (>= 0.1.0-preview.8)
- Mediant (>= 1.4.1)
- Quartz (>= 3.20.0)
- Quartz.Extensions.DependencyInjection (>= 3.20.0)
- Quartz.Extensions.Hosting (>= 3.20.0)
- Quartz.Serialization.SystemTextJson (>= 3.20.0)
-
net8.0
- Goldpath.Abstractions (>= 0.1.0-preview.8)
- Goldpath.Data (>= 0.1.0-preview.8)
- Goldpath.Sdk (>= 0.1.0-preview.8)
- Mediant (>= 1.4.1)
- Quartz (>= 3.20.0)
- Quartz.Extensions.DependencyInjection (>= 3.20.0)
- Quartz.Extensions.Hosting (>= 3.20.0)
- Quartz.Serialization.SystemTextJson (>= 3.20.0)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on Goldpath.Jobs:
| Package | Downloads |
|---|---|
|
Goldpath.Notification
Transactional notifications for the Goldpath enterprise asset: one domain event becomes one message with enterprise discipline - durable evidence rows (who/when/what answered by query, template-hash proof after body retention), idempotent send (a required unique dedup key; a retry storm cannot double-send), claim-before-send semantics with repair-queue replay, culture-aware code templates, and channel seams (email via MailKit + webhook shipped; SMS pluggable). Sending runs on Goldpath.Jobs (notification RFC D1-D7). |
|
|
Goldpath.Bulk
File/set intake for the Goldpath enterprise asset (L3 of the execution ladder): content-addressed same-database file store, CSV parsing behind a format seam, typed per-row validation with a value-free report, an audited approve/reject gate, and execution of approved batches as Goldpath.Jobs runs - chunked, checkpointed, resumable, with row failures isolated into the repair queue and claim-before-side-effect semantics (bulk RFC D1-D7). |
|
|
Goldpath.Archival
The data lifecycle after "hot" for the Goldpath enterprise asset: declarative retention per aggregate, archive runs that move whole GRAPHS into a tamper-evident same-database store (SHA-256 hash chain), row-retention purges for high-volume detail, legal hold, and erasure that composes with retention. Runs execute on Goldpath.Jobs - chunked, checkpointed, resumable, visible in the same console (archival RFC D1-D7). |
|
|
Goldpath.Campaign
Governed mass-execution (L4) for the Goldpath enterprise asset: a campaign is a durable plan of enumerated targets released to broker consumers under a LIVE policy - TPS pacing, daily quota, send windows, max-in-flight - by a single long-lived leader (pacer on Goldpath.Jobs). Claim-before-execute makes double-sends structurally impossible; outcomes flow through a batching sink so 30M items never mean 30M writes; every failure lands in the repair queue with per-item replay (campaign RFC D1-D8). |
|
|
Goldpath.Approvals
Ring B human approval workflows for the Goldpath enterprise asset: amount-laddered authority chains declared as data, four-eyes and maker-checker enforcement, bounded delegation, deadline escalation, and the worklist — with every lifecycle step audited and published as integration events. Replaces the e-mail approval thread, not the humans in it. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-preview.8 | 112 | 9/7/2026 |
| 0.1.0-preview.7 | 116 | 9/1/2026 |
| 0.1.0-preview.6 | 366 | 8/4/2026 |
| 0.1.0-preview.5 | 103 | 7/28/2026 |
| 0.1.0-preview.4 | 98 | 7/27/2026 |
| 0.1.0-preview.3 | 76 | 7/25/2026 |
| 0.1.0-preview.2 | 98 | 7/13/2026 |
| 0.1.0-preview.1 | 161 | 7/13/2026 |