Inngest.OpenTelemetry 0.1.0

There is a newer version of this package available.
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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Inngest.OpenTelemetry" Version="0.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Inngest.OpenTelemetry" Version="0.1.0" />
                    
Directory.Packages.props
<PackageReference Include="Inngest.OpenTelemetry" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Inngest.OpenTelemetry --version 0.1.0
                    
#r "nuget: Inngest.OpenTelemetry, 0.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Inngest.OpenTelemetry@0.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Inngest.OpenTelemetry&version=0.1.0
                    
Install as a Cake Addin
#tool nuget:?package=Inngest.OpenTelemetry&version=0.1.0
                    
Install as a Cake Tool

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, RetryAfterException and 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 with AddConnect.

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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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