Workflows for .NET

Background jobs & workflows, code-first

Klassd.Workflows runs your C# jobs as their own Kubernetes pods — or local processes in dev. Schedule them with cron, compose them into DAG workflows, and watch every run live.

Get started on GitHub →

Code-first jobs

A job is a C# class implementing IJob — no YAML, no attributes-as-config. The engine discovers it by type name.

Runs in its own pod

Each execution is a batch/v1 Kubernetes Job (one pod), with per-job CPU/memory requests and limits.

Same worker, local too

In dev the same worker runs as a child process — no cluster needed. Switch to Kubernetes with one config setting.

DAG workflows

Compose jobs into a graph: dependencies, fan-out (one pod per item), conditional nodes, retries, and artifact passing.

Live dashboard

A Blazor dashboard shows the job list, per-job console + progress, recurring jobs, and an SVG view of each DAG run.

Durable & pluggable

Swap the job store (in-memory / Postgres / MongoDB) and the artifact store (filesystem / S3 / GCS) — or ship your own.

A job is just a C# class

Implement IJob, log and report progress through the context, and let the scheduler run it anywhere. The same worker runs locally and in the cluster.

MyJob.cs
public sealed class MyJob : IJob
{
    public async Task RunAsync(IJobContext ctx)
    {
        ctx.Log("starting");
        ctx.ReportProgress(50, "halfway");
        await Task.Delay(1000, ctx.CancellationToken);
        ctx.Log("done");
    }
}
Install
# Klassd.Workflows is in beta — install the prerelease packages
dotnet add package Klassd.Workflows.Core --prerelease
dotnet add package Klassd.Workflows.Kubernetes --prerelease

Want the full picture — DAGs, executors, durable stores, artifact backends and the package list?

Read the docs →