用途:当任务规模超过单个函数或触发器时,按需求选择架构模式,并用 iii 原语实现。模式映射:顺序执行且需重试、死信队列、步骤追踪用持久化工作流(函数经命名队列串联,进度写入状态);保持视图、指标、缓存或客户端同步用响应式后端(状态触发器加流/发布订阅副作用);多个专用 AI 智能体互相交接用智能体后端(每个智能体一个函数,队列交接,共享状态);命令发布事件、投影独立更新用事件驱动 CQRS(命令函数、状态中的事件日志、订阅触发器);纯函数可追踪组合用效果管道(小函数通过 trigger() 同步组合);Webhook/定时自动化链用低代码自动化(触发器、转换、动作节点经 enqueue 串联)。
主要能力与用法:持久化工作流中,当步骤需要不同重试、FIFO 或并发策略时使用命名队列,示例用 registerWorker 连接 ws://localhost:49134,通过 state::update 记录步骤状态,并用 TriggerAction.Enqueue({ queue: "order-payment" }) 交接。响应式后端用 registerTrigger 注册 type: "state" 的触发器,在变更后经 stream::send 推送实时更新。智能体后端把每个智能体建模为单一职责函数,共享上下文存状态,经命名队列交接。CQRS 中命令函数校验后写事件日志并 publish,投影通过 type: "subscribe" 触发器独立订阅并写查询优化状态。
选择规则:短效果管道且调用方需要最终结果用同步组合;不可靠、慢或必须完成的步骤用 enqueue;独立扇出且订阅者可容忍事件式投递用发布订阅;写入后应自动运行的派生视图与副作用用状态触发器;定时维护与周期启动用 cron 触发器;每个函数保持可独立测试。
适用场景:完整后端模式,包括工作流、智能体系统、响应式应用、CQRS、效果管道与自动化链;当需求描述产品行为而非单个 SDK API 调用时使用。
限制与边界:精确触发器配置、函数注册语法、自定义触发器、通道与 HTTP 调用函数见 iii-core-primitives;引擎端口、适配器、引擎自有 worker 与 RBAC(rbac-proxy)见 iii-engine-config,队列重试与 FIFO 策略见队列 worker 文档;包特定 SDK 语法见 iii-sdk-reference;worker 支持的能力细节见对应 worker 文档,不作为顶层 iii 技能。