跳到主要内容

n8n 源码拆解

以本地 n8n-master2.33.0 源码快照为对象,按“概念 → 源码 → 运行流程 → 设计取舍”的方式,拆解一个把可视化工作流、HTTP 服务、队列系统、凭证安全和 AI 能力装进同一运行时的工程系统。

这份拆解要回答什么

n8n 表面上是一个拖拽节点的自动化工具,源码里却同时存在三种形态:

  1. 一个可执行的有向图:工作流由节点和带类型的连接组成,执行器根据输入数据、分支、循环和等待状态推进图。
  2. 一个长驻的平台服务:CLI 负责 HTTP API、认证、数据库、Webhook、定时触发、执行记录和编辑器资源。
  3. 一个可横向扩展的运行时:主进程、worker、Redis/Bull、任务运行器、二进制存储和多主实例共同承载生产负载。

因此阅读顺序不能从某个节点的 execute() 开始。应先建立“数据从哪里来、图如何被推进、状态在哪里保存、哪个进程负责执行”的全局模型。

章节地图

章节主题读完后应该能解释
01总览n8n 的四层架构与一次执行的边界
02Monorepo 与启动包之间如何依赖,CLI 如何把服务装配起来
03Workflow 模型节点、连接、数据 item、表达式和图算法
04执行引擎WorkflowExecute 如何推进栈、分支、循环、等待和取消
05节点扩展一个节点如何描述参数、加载、取凭证并执行
06触发入口Webhook、Schedule、Poll、事件触发如何进入执行器
07队列与规模化main、worker、Redis、并发限制与 webhook 回传如何协作
08持久化与安全工作流/执行/凭证如何入库,权限和密钥边界在哪里
09API 与前端Vue 编辑器如何与后端 API、实时推送和 workflow store 对齐
10AI 与 MCPAI 节点为什么使用非 main 连接,工具调用如何回到图中
11Task RunnerCode 节点如何把用户代码放进受控的执行边界
12工程化测试、边界检查、CI、构建和发布如何守住复杂系统
13完整链路从点击“执行”到结果落库的源码阅读路线

如何使用

  • 先读 01–04,建立运行时和执行器模型。
  • 需要开发节点时读 05;需要接入外部系统时读 06。
  • 需要部署、排障或扩容时读 07–08。
  • 需要改编辑器或 AI 时读 09–11。
  • 最后用 13 章做一次端到端回放,并用附录索引跳到具体文件。

版本与证据边界

文档中的版本结论来自本地快照的根 package.json2.33.0)以及对应源码路径。源码链接默认指向 n8n 上游 master,如果上游后续重构,链接仍可定位同名模块,但具体行号和实现细节可能变化。文中把“代码明确表达的事实”和“基于调用关系的架构推断”分开描述,读者可以沿源码链接复核。

许可证提示

n8n 使用 Sustainable Use License 与 Enterprise License。本文是对公开源码的学习性说明,不重新分发 n8n 源码、节点资产或商业功能。