Inngest.OpenTelemetry
0.1.0
See the version list below for details.
dotnet add package Inngest.OpenTelemetry --version 0.1.0
NuGet\Install-Package Inngest.OpenTelemetry -Version 0.1.0
<PackageReference Include="Inngest.OpenTelemetry" Version="0.1.0" />
<PackageVersion Include="Inngest.OpenTelemetry" Version="0.1.0" />
<PackageReference Include="Inngest.OpenTelemetry" />
paket add Inngest.OpenTelemetry --version 0.1.0
#r "nuget: Inngest.OpenTelemetry, 0.1.0"
#:package Inngest.OpenTelemetry@0.1.0
#addin nuget:?package=Inngest.OpenTelemetry&version=0.1.0
#tool nuget:?package=Inngest.OpenTelemetry&version=0.1.0
inngest-dotnet
Durable functions for .NET. Write background jobs and workflows as plain C# methods. Inngest runs every step once, retries only what fails and lets a run wait for days, so you ship reliable workflows without queues, state tables or cron glue.
inngest-dotnet is a community .NET SDK for Inngest, ported from the Inngest TypeScript SDK, inngest-js. It targets .NET 8 and .NET 10 and is Native AOT compatible.
Packages
Inngest: functions, steps, triggers, flow control, middleware, the client that sends events, and request signing.Inngest.AspNetCore:MapInngest, the endpoint Inngest calls in an ASP.NET Core app.Inngest.Connect:AddConnect, a hosted worker that receives calls over an outbound WebSocket, with no endpoint to expose.Inngest.Testing: an in-memory test host that runs your functions on the real execution engine.Inngest.OpenTelemetry: traces and metrics for function calls and steps.
Install Inngest.AspNetCore for a web app, or Inngest.Connect for a worker. Both bring in Inngest:
dotnet add package Inngest.AspNetCore
dotnet add package Inngest.Connect
A durable function
Attributes give the function its id and the event that starts it. Each call to a step tool is a step. Inngest saves its result, so a retry runs only the step that failed.
using Inngest;
public sealed record OrderPaid(string OrderId, string CustomerId, decimal Amount);
[InngestFunction("checkout")]
[EventTrigger("shop/order.paid")]
public sealed class CheckoutFunction(IPayments pay, IMailer mail, IWarehouse warehouse)
: InngestFunction<OrderPaid>
{
public override async Task<object?> ExecuteAsync(
FunctionContext<OrderPaid> context, CancellationToken cancellationToken)
{
var order = context.Event.Data;
var charge = await context.Step.RunAsync("charge",
ct => pay.ChargeAsync(order, ct));
await context.Step.RunAsync("send-receipt",
ct => mail.SendReceiptAsync(order, ct));
await context.Step.SleepAsync("cooling-off",
TimeSpan.FromMinutes(30));
await context.Step.RunAsync("ship",
ct => warehouse.ShipAsync(order, ct));
return new { charge.Id };
}
}
Register it and map the endpoint Inngest calls:
builder.Services
.AddInngest(options => options.AppId = "shop")
.AddFunction<CheckoutFunction>();
var app = builder.Build();
app.MapInngest("/api/inngest");
app.Run();
Start the app with INNGEST_DEV=1, run the Inngest dev server,
send an event with IInngestClient, and watch the run at http://localhost:8288.
Features
- Steps that run once, sleeps, waits for events, parallel steps with
Task.WhenAll, and invoking other functions. - Triggers from events, filtered events and cron schedules.
- Flow control as attributes or options: concurrency, throttling, rate limits, debounce, batching, priority, idempotency, singletons, cancellation and timeouts.
- Retries per step,
NonRetriableException,RetryAfterExceptionand failure handlers. - Middleware with observer and wrap hooks, resolved from DI.
- Signed requests in cloud mode, with a fallback key for key rotation.
- Serve from ASP.NET Core with
MapInngest, or from a worker withAddConnect.
Documentation
License
Apache License 2.0. inngest-dotnet is a C# port of inngest-js, Copyright 2022 Inngest Inc., also licensed under the Apache License 2.0; the package includes the NOTICE file. This project is not affiliated with or endorsed by Inngest Inc. "Inngest" is a trademark of Inngest Inc.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Inngest (= 0.1.0)
- OpenTelemetry.Api (>= 1.15.3)
-
net8.0
- Inngest (= 0.1.0)
- OpenTelemetry.Api (>= 1.15.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 65 | 10/31/2026 |
| 0.1.0 | 57 | 10/30/2026 |
| 0.1.0-preview.3 | 63 | 10/30/2026 |
| 0.1.0-preview.2 | 60 | 10/29/2026 |
| 0.1.0-preview.1 | 44 | 10/29/2026 |