Inngest is an event-driven queue. Instead of configuring queues directly with all the associated work, Inngest decouples your queue from your systems by using events.
Fundamentally, there are two critical concepts to Inngest:
- Events, which represent something happening in your system (or a 3rd party)
- Functions, which are triggered by events or on a schedule. They declaratively state how they're triggered, and are fully versioned.
Whenever something happens, like a user signs up, you'll send an event to Inngest. You can then build functions which are automatically triggered by these events, without writing a single line of code relating to a queue — no workers, no config, no infra.
Decoupling your async work via events has a few benefits. At a high level, it's faster and easier to work with, and has less ops overhead. You can:
- Deploy your functions independently, without updating core services
- Add canary or blue-green deploys to any function, out of the box
- Immediately roll back to a previous function version
- Re-run past events through functions, even if the function is new
- Historically test functions with previously received events
It's also easier to get started and learn. Events are sent via a plain HTTP call, and engineers don't need to concern themselves with queue-specific implementation details. You only need to know how your function is triggered and the data within that event; from there, you're only writing your business logic.
There's more that Inngest provides, such as user identification within events for customer-specific audit trails and debugging, or event schemas out of the box.