Durable background jobs for every stack, without the infra.
Enqueue jobs from any service — official SDKs for .NET, TypeScript, Python, Go, Java, PHP, and Ruby — and let Zeridion handle the queue, retries, recurring schedules, and dead letters. Your workers pull and execute. No queue infrastructure to babysit.
If your jobs run on an in-process timer or a hand-rolled retry loop, and you’d rather ship features than babysit them, this is for you.
// Install the SDK dotnet add package Zeridion.Flare --prerelease // Wire it up in two lines builder.Services.AddZeridionFlare(opt => { opt.ApiKey = builder.Configuration["Zeridion:ApiKey"]; opt.ApiBaseUrl = "https://api.zeridion.com/flare/v1"; }); app.UseZeridionFlare();
Why teams choose Flare
Designed for operational clarity from the first queued job to production scale.
One managed endpoint, zero queue infrastructure
Drop the SDK in and make one HTTPS call to api.zeridion.com/flare/v1; storage, scheduling, retries, and the dashboard are managed.
Feels like the .NET you already write
IJob<T> classes with constructor DI, async/await, and CancellationToken. One line to enqueue, strongly typed payloads. No expression trees, no magic strings — just an optional [JobConfig] attribute when you want per-class defaults.
Production defaults, not homework
Exponential backoff with jitter, dead-letter on exhaustion, a stuck-job reaper, and an Idempotency-Key header that replays the original response on duplicates — all on by default.
Chain jobs without an orchestrator
Mark a child to run only after its parent succeeds with ContinueWithAsync. Failures and dead-lettering cascade automatically. No Durable Functions, no Temporal, no DIY chaining through a second queue.
Observability that joins your traces
Every job emits OpenTelemetry spans tagged with tenant.id and tenant.plan. A metrics API exposes summary, throughput, and queue depth — drop straight into Grafana, DataDog, or Honeycomb.
Backoff that knows when to retry
Per-tenant sliding-window rate limits enforced atomically in Redis. A 429 surfaces as FlareRateLimitException with ResetAt — your client waits the exact window, not a guessed exponential.
Four steps from one line of code to a dashboard row.
You write the enqueue call and the job class. Flare owns the durable store, the pull loop, retries with backoff, and the dead-letter path — and reflects every state change in the dashboard.
Enqueue from your code
One line via the NuGet SDK, with a strongly-typed payload. No queue client, no broker connection string.
await jobs.EnqueueAsync<SendInvoice>(payload);We store it durably
The Flare API persists the job to a managed datastore. You ship no queue infrastructure, no broker, and no DB migration of your own.
Your worker pulls and runs
Your process picks up the next eligible job and executes it. On failure we schedule a retry with exponential backoff + jitter; after
MaxAttemptsthe job moves to dead-letter — automatically.Observe everything
Every state change lands in the hosted dashboard. OpenTelemetry spans tagged with
tenant.idflow into your tracing stack, and the metrics API exposes throughput and queue depth.
From dotnet add to first job
Copy each step. Run against the live API. No leaving this page.
dotnet add package Zeridion.Flare --prerelease // appsettings.json { "Zeridion": { "ApiKey": "zf_live_sk_xxxxxxxxxxxxxxxxxxxx" } }
Automatic retries
Exponential backoff with configurable retry counts and dead-letter handling.
Progress reporting
Call ctx.ReportProgress(0.42) from your job; the value rides the next heartbeat to the dashboard’s progress bar.
Recurring jobs
Define cron schedules directly in code — no external scheduler or timer service required.
Queue visibility
Dashboard metrics, alerting, and full payload inspection for every job state.
The Zeridion platform
Every surface uses the hostname for the surface and the path for the product.
Zeridion Flare
Durable background jobs for every stack. Official SDKs for .NET, TypeScript, Python, Go, Java, PHP, and Ruby. Retries, scheduling, recurring jobs, a real-time dashboard, and a hosted API.
zeridion.com/flareSimple, predictable pricing
Start free. Upgrade when your jobs outgrow the tier you’re on.
Free
$0
forever
- 50,000 jobs / month
- 1,000 requests / hour
- 1 project
- Hosted dashboard
- Community support
Starter
$29
/ month
- 300,000 jobs / month
- 5,000 requests / hour
- 3 projects
- Opt-in overage: $1.50 / 10k extra jobs
- Email alerts
Pro
$99
/ month
- 3,000,000 jobs / month
- 50,000 requests / hour
- Unlimited projects
- Opt-in overage: $1.00 / 10k extra jobs
- Priority support
Business
$299
/ month
- 30,000,000 jobs / month
- 500,000 requests / hour
- Unlimited projects
- Opt-in overage: $0.50 / 10k extra jobs
- Custom data retention
Enterprise
Custom
- Custom job volume
- Custom rate limits
- Unlimited projects
- SLA & SOC 2 report
- Dedicated support
Exceed your daily quota and new enqueues return HTTP 429 until midnight UTC — no surprise overage charges.
On the roadmap for paid plans: SSO/SAML, Slack alerts, priority queues. (Audit-log export shipped in 0.1.2 — available on every plan today.)
Common questions
Quick answers before you talk to anyone. If something here isn’t clear, the docs go deeper.
Do I have to host workers myself?
Zeridion.Flare NuGet package registers a hosted service inside your existing ASP.NET Core app that polls our API for work — there are no separate worker VMs or containers for you to operate. The data plane (queue, scheduler, retries, dashboard) is fully managed.Which .NET runtime versions are supported?
net10.0 and netstandard2.1, so it runs on any project that supports .NET Standard 2.1 or later — including .NET 6, 7, 8, 9, and 10 on Windows, Linux, macOS, and ARM. ASP.NET Core is recommended but not required.How is this different from running a job library in-process?
What happens when I hit my plan’s daily limit?
POST requests to create jobs return HTTP 429 with error code daily_quota_exceeded and X-Quota-* response headers showing your limit, current usage, and the UTC midnight reset. Jobs already in the queue continue to run. Upgrade or wait — there is no overage billing surprise.Is there a free tier, and does it stay free?
Can I run Flare offline or on-premises?
How is my data stored — what about GDPR?
What if I want to leave?
Zeridion.Flare) and every operation has a documented REST endpoint, so you’re never blocked on us to read your data or wire a different client. Job payloads are your JSON — export from the dashboard or the API. Cancel any time; the free tier just keeps running.Ship background work in minutes, not sprints.
Install the NuGet package, add two lines of config, and start enqueuing jobs against the hosted Flare API.