用途:该技能用于掌握 Inngest 的事件设计与投递模式,适合设计事件驱动工作流、解耦服务、实现扇出(一个触发、多个下游处理器)与幂等处理。内容以 TypeScript 为主,Python 或 Go 需参考 Inngest 官方文档,核心概念跨语言通用。
主要能力:事件负载为 JSON 对象,必填 name(事件类型)与 data(负载),可选 id(去重 ID)、ts(Unix 毫秒时间戳)、v(模式版本)。命名推荐“对象-动作”模式,如 billing/invoice.paid、user/profile.updated,使用过去时与点号层级,避免 payment、user_update 等模糊写法。幂等通过 id 实现,ID 应针对事件类型与实例唯一,如 invoice-paid-${invoiceId},去重窗口为首次接收后 24 小时。ts 可用于未来调度与按时间顺序处理。扇出模式让一个事件触发多个独立函数,具备独立性、并行执行、选择性重放与跨服务触发等优势,也可用 step.sendEvent 与 step.waitForEvent 编排。系统事件包括 inngest/function.failed、inngest/function.finished、inngest/function.cancelled,可用于失败日志、告警与自动重试。
使用方式:客户端通过 new Inngest({ id: "my-app" }) 创建,生产环境需设置 INNGEST_EVENT_KEY。用 inngest.send 发送单个或批量事件(批量上限 512kb),返回事件 ID 便于追踪;在函数内部应使用 step.sendEvent 以获得可靠性与去重。
适用场景与限制:适用于事件驱动架构、服务解耦、并行处理与失败监控。事件模式发送后不应修改,需自包含、可追踪、可调试。资料未提供具体收费、价格与平台支持细节。