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.
Simple, 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
Allowances are monthly. Paid plans can enable opt-in overage to keep running past the allowance — with an optional spend cap so a bill never surprises you. Without overage, new enqueues return HTTP 429 until the allowance resets at the end of your billing period (calendar month on Free).
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 — no separate worker process needed. In TypeScript, Python, Go, Java, PHP, and Ruby, the SDK is a REST client you call from your existing service or a small worker process. The data plane (queue, scheduler, retries, dashboard) is fully managed in all cases.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 monthly allowance?
POST requests to create jobs return HTTP 429 with error code monthly_allowance_exceeded and X-Quota-* response headers showing your allowance, current usage, and the reset time — the end of your billing period on paid plans, calendar month-end UTC on Free. Jobs already in the queue continue to run. Paid plans can enable opt-in overage to keep creating jobs at the plan’s per-10k rate, with an optional spend cap; once the cap is reached, creates return spend_cap_reached until you raise it or the period resets.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?
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.