Everything in UPLOADS, plus Hangfire background jobs backed by MongoDB. Fire-and-forget, delayed, and recurring jobs — with a live dashboard and configurable worker pools.
Use code FIRSTXPEOPLE for €15 off → €60
Tech stack
Clean abstraction over Hangfire — inject IBackgroundJobService and never depend on Hangfire types directly. Returns ErrorOr<string> for every enqueue so failures are handled like any other operation.
Enqueue<T> for fire-and-forget — executed as soon as a worker is free. Schedule<T> for delayed execution. AddOrUpdateRecurring<T> for CRON-scheduled recurring jobs.
Priority, dedicated, or hybrid queue models via HangfireOptions in appsettings.json. Route jobs to specific queues with [Queue("critical")]. No code changes needed to change the model.
Three modes for missed recurring executions: Relaxed (run once on recovery), Ignorable (skip missed runs), Strict (run once per missed execution). Choose per job.
All job state (queued, processing, scheduled, succeeded, failed) is stored in MongoDB under the hangfire. collection prefix. Same database as your app — no extra infrastructure needed.
Configurable automatic retries with exponential back-off. Hangfire dashboard at /jobs — inspect queues, retry failed jobs, trigger recurring jobs manually. Access-controlled by default (localhost only).
OrphanedFilesCleanupJob — nightly recurring job that removes S3 file metadata for objects that no longer exist in storage. ProductCacheInvalidationJob — fire-and-forget cache wipe on the critical queue.
Keycloak JWT auth, Redis cache-aside, S3 file storage (Public / PresignedUrl / Proxy), per-bucket config, MongoDB persistence, dual pagination, ErrorOr, RFC 7807 errors, Swagger, Docker Compose.
All validate, map, cache, after-success, and rollback hooks from UPLOADS are included. Use OnAfterCreateAsync to enqueue a job after every successful insert — the pattern is already wired up in the example code.
Pricing
Full source code, private docs, unlimited projects, entire team included.
or €60 with code FIRSTXPEOPLE
Secure checkout via Lemon Squeezy · Instant delivery