UKBatch 0.1.0-alpha
Pre-release
Pre-release
First public preview of the UKBatch package family.
Added
- Multi-targeting — every package ships
net8.0andnet10.0builds in a single NuGet package; the consuming app's target framework picks the right build automatically. Onnet8.0the EF Core adapter rides the EF Core 8 (LTS) line. - UKBatch.Abstractions — zero-dependency contracts (interfaces, attributes, DTOs) shared by every package.
- UKBatch.Core — the runtime: dispatcher, cron scheduler, per-job retries, sequential/parallel/approval-gate workflows, partitioned data-parallel jobs, the in-memory store, and the in-process transport.
- UKBatch.AspNetCore — host integration with
HttpContext-awareTriggeredByenrichment, W3C trace propagation, and a readiness health check. - UKBatch.Api — REST endpoints, an OpenAPI document, and a SignalR hub for live job-status updates.
- UKBatch.Dashboard — a Blazor Server UI for monitoring, triggering, approvals, a visual drag-and-drop batch editor, a live DAG view, and multi-service support.
- UKBatch.Worker —
UseWorkerModeto turn a microservice into a worker, with a worker identity, a heartbeat, and a startup transport guard. - UKBatch.Transport.Http — HMAC-SHA256-signed cross-service messaging with retry and circuit-breaker resilience.
- UKBatch.Transport.RabbitMQ — durable quorum queues, request-reply RPC, and effectively-once dedupe.
- UKBatch.Storage.EntityFrameworkCore — PostgreSQL and SQLite persistence with design-time migrations.
- UKBatch.Server — a standalone, configuration-driven Docker application, plus a
docker-composesetup for a server + workers deployment.
Known limitations
- No OpenAPI document on .NET 8. Built-in OpenAPI generation requires .NET 9+; on the
net8.0target the REST + SignalR surface is identical, but/openapi/v1.jsonis not produced (layer Swashbuckle yourself if needed). - No durable workflow resume. After a host restart, batch definitions and completed history persist (with persistent storage), but in-flight executions are marked
Failedby the orphan reaper and paused approval gates do not resume. - No step output forwarding. A step's output is not passed as input to subsequent steps. The cross-service HTTP sample's
orderIdillustrates this: it is generated but not forwarded. - No cross-service progress forwarding. Per-item progress counters of a job running on a remote worker appear in the worker's logs but do not flow back to the dashboard.
- Rejected approval gate with successful compensation. When a gate is rejected and its compensation steps succeed, the overall run reports as
Completed; the rejection is visible in the approvals history, not in the final run status. - In-memory transport dedupe. Transport message-dedupe caches are in-memory per process and reset on restart.
- Single-node orphan reaper. The orphaned-execution reaper assumes a single orchestrator node.
- Adapters not yet available. Kafka, Azure Service Bus, and Redis adapters are not part of this release.