Product
Socket Now Supports uv.lock Files
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
inngest-cli
Advanced tools
Inngest is a developer platform that combines event streams, queues, and durable execution into a single reliability layer.
Build and ship durable functions and workflows in your current codebase without any additional infrastructure. Using Inngest, your entire team can ship reliable products.
SDKs: TypeScript/JavaScript — Python — Go
npx inngest-cli@latest dev
Inngest makes it easy to develop durable functions and workflows in your existing codebase, without any new infrastructure. Inngest Functions are triggered via events — decoupling your code within your application.
Inngest abstracts the complex parts of building a robust, reliable, and scalable architecture away from you, so you can focus on building applications for your users.
step
tools like run
, sleep
, sleepUntil
, and waitForEvent
that you can combine using code and patterns that you're used to create complex and robust workflows.Read more about our vision and why Inngest exists
👉 Follow the full quick start guide here
Here is an example of an Inngest function that sends a welcome email when a user signs up to an application. The function sleeps for 4 days and sends a second product tips email:
import { Inngest } from 'inngest';
const inngest = new Inngest({ id: 'my-app' });
// This function will be invoked by Inngest via HTTP any time
// the "app/user.signup" event is sent to to Inngest
export default inngest.createFunction(
{ id: 'user-onboarding-emails' },
{ event: 'app/user.signup' },
async ({ event, step }) => {
await step.run('send-welcome-email', async () => {
await sendEmail({ email: event.data.email, template: 'welcome' });
});
await step.sleep('delay-follow-up-email', '7 days');
await step.run('send-tips-email', async () => {
await sendEmail({ email: event.data.email, template: 'product-tips' });
});
}
);
// Elsewhere in your code (e.g. in your sign up handler):
await inngest.send({
name: 'app/user.signup',
data: {
email: 'test@example.com',
},
});
Some things to highlight about the above code:
step.run
is automatically retried on error.step.run
is individually executed via HTTPS ensuring errors do not result in lost work from previous steps.sleep
for hours, days, or months. Inngest stops execution and continues at the exactly the right time.Learn more about writing Inngest functions in our documentation.
Fundamentally, there are two core pieces to Inngest: events and functions. Functions have several subcomponents for managing complex functionality (eg. steps, edges, triggers), but high level an event triggers a function, much like you schedule a job via an RPC call to a queue. Except, in Inngest, functions are declarative. They specify which events they react to, their schedules and delays, and the steps in their sequence.
Inngest’s architecture is made up of 6 core components:
And, in this CLI:
For specific information on how the DevServer works and how it compares to production read this doc.
We’re excited to embrace the community! We’re happy for any and all contributions, whether they’re feature requests, ideas, bug reports, or PRs. While we’re open source, we don’t have expectations that people do our work for us — so any contributions are indeed very much appreciated. Feel free to hack on anything and submit a PR.
Check out our contributing guide to get started.
[v0.27.0] - 2024-04-16
FAQs
The event-driven queue for any language.
The npm package inngest-cli receives a total of 21,200 weekly downloads. As such, inngest-cli popularity was classified as popular.
We found that inngest-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Research
Security News
Socket researchers have discovered multiple malicious npm packages targeting Solana private keys, abusing Gmail to exfiltrate the data and drain Solana wallets.
Security News
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.