Goldpath.Jobs 0.1.0-preview.8

This is a prerelease version of Goldpath.Jobs.
dotnet add package Goldpath.Jobs --version 0.1.0-preview.8
                    
NuGet\Install-Package Goldpath.Jobs -Version 0.1.0-preview.8
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Goldpath.Jobs" Version="0.1.0-preview.8" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Goldpath.Jobs" Version="0.1.0-preview.8" />
                    
Directory.Packages.props
<PackageReference Include="Goldpath.Jobs" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Goldpath.Jobs --version 0.1.0-preview.8
                    
#r "nuget: Goldpath.Jobs, 0.1.0-preview.8"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Goldpath.Jobs@0.1.0-preview.8
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Goldpath.Jobs&version=0.1.0-preview.8&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Goldpath.Jobs&version=0.1.0-preview.8&prerelease
                    
Install as a Cake Tool

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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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