Creating middleware
Creating middleware means defining the lifecycles and subsequent hooks in those lifecycles to run code in. Lifecycles are actions such as a function run or sending events, and individual hooks within those are where we run code, usually with a before and after step.
Support for Middleware in the Go SDK in planned.
Initialization
All lifecycle and hook functions can be synchronous or async functions - the SDK will always wait until a middleware's function has resolved before continuing to the next one.
As it's possible for an application to use multiple Inngest clients, it's recommended to always initialize dependencies within the initializer function/method, instead of in the global scope.
Specifying lifecycles and hooks
Adding configuration
It's common for middleware to require additional customization or options from developers. For this, we recommend creating a function that takes in some options and returns the middleware.
Next steps
Check out our pre-built middleware and examples:
Dependency Injection
Provide shared client instances (ex, OpenAI) to your Inngest Functions.
Encryption Middleware
End-to-end encryption for events, step output, and function output.
Sentry Middleware
Quickly setup Sentry for your Inngest Functions.
Datadog middleware
Add tracing with Datadog under a few minutes.
Cloudflare Workers & Hono middleware
Access environment variables within Inngest functions.