Commit Graph

50 Commits

Author SHA1 Message Date
Florian Gößler
1908b5cf4c
perf(engine): Cut database round trips on the step settle and run paths
Each queue on the data plane handles one message at a time, so every
sequential round trip adds to the time per execution.

- createSteps: move the failed-step test into the INSERT. The test still
  runs as a statement after the execution-row lock, so it sees a failure
  that commits while the insert waits for the lock. 5 round trips become 4.
- step:settled: read hasFailedSteps in parallel with loadStep and
  loadExecution. A failure that lands after the probe still stops
  planning, because createSteps refuses to insert after a failure.
- step:settled: skip refreshLiveStatus when it cannot change the status:
  after the handler finishes the execution, and after it queues steps for
  an execution that is running.
- v1 step data loader: load the execution and its steps in parallel.

Durability and ordering guarantees do not change. One visible effect:
if a branch suspends while another branch queues steps, the execution
can show 'waiting' instead of 'running' until the next settlement. The
engine treats both statuses as live, so only the reporting API sees it.

Webhook -> 3 NoOps: about 12 fewer sequential round trips on the
orchestrator and 3 fewer on the step worker per execution.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 15:01:28 +02:00
Danny Martini
adfc54a090 feat(engine): Add engine v2 tracing spans and a benchmark NoOp opt-in 2026-10-16 00:46:50 +02:00
n8n-assistant[bot]
a11777054a
🚀 Release 2.43.0 (#40376)
Co-authored-by: n8n-release-helper[bot] <265227495+n8n-release-helper[bot]@users.noreply.github.com>
2026-10-06 07:10:16 +00:00
Tomi Turtiainen
3c1aaae176
feat(core): Send streaming webhook chunks from engine v2 (no-changelog) (#39947) 2026-09-30 09:50:04 +00:00
Matsu
fe1bfdfd29
chore(core): Migrate runtime lint to Oxlint (no-changelog) (#39844) 2026-09-29 16:06:29 +03:00
Tomi Turtiainen
84da588c36
feat(engine): Let the caller tell engine v2 which response it expects (#39780) 2026-09-29 10:19:05 +00:00
n8n-assistant[bot]
86c23326c9
🚀 Release 2.42.0 (#39826)
Co-authored-by: n8n-release-helper[bot] <265227495+n8n-release-helper[bot]@users.noreply.github.com>
2026-09-29 07:11:00 +00:00
Danny Martini
c53a5e4dd8
feat(engine): Store the execution's waiting status (no-changelog) (#39093)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-25 13:13:59 +00:00
Danny Martini
d5777232ad
feat(engine): Declare a deadline wait when a v1 node waits for a date (no-changelog) (#39164)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 08:23:46 +00:00
Pierantonio Cangianiello
94d803f595
feat(engine): Support binary reference bodies in Engine v2 sendResponse (no-changelog) (#39534) 2026-09-25 08:22:17 +00:00
Tomi Turtiainen
c6fb5737c1
chore(engine): Use engine v2 naming (#39582) 2026-09-25 07:54:48 +00:00
Pierantonio Cangianiello
e5996eeaff
feat(engine): Support Buffer bodies in Engine 2.0 sendResponse (no-changelog) (#39483)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-24 11:03:12 +00:00
Tomi Turtiainen
95c4070090
feat(core): Support the responseNode webhook response mode on engine 2.0 (no-changelog) (#39003) 2026-09-24 08:24:43 +00:00
Danny Martini
691bf44151
feat(engine): Suspend and resume waiting steps (no-changelog) (#37853)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-23 14:59:15 +00:00
Tomi Turtiainen
3f5aab992c
fix(engine): Preserve host execution mode (#39253) 2026-09-23 06:28:26 +00:00
Tomi Turtiainen
518a24dd64
refactor(engine): Split execution response endpoints (#39261) 2026-09-22 11:44:49 +00:00
n8n-assistant[bot]
669a65ade5
🚀 Release 2.41.0 (#39228)
Co-authored-by: n8n-release-helper[bot] <265227495+n8n-release-helper[bot]@users.noreply.github.com>
2026-09-22 07:18:44 +00:00
Tomi Turtiainen
c37c4d7b3f
feat(engine): Publish execution response events on the data plane (no-changelog) (#39080) 2026-09-21 10:44:58 +00:00
Tomi Turtiainen
cb1577367c
fix(engine): Report the host's v1 execution mode to a step (#38960) 2026-09-17 13:54:47 +00:00
n8n-assistant[bot]
caff5b7013
🚀 Release 2.40.0 (#38711)
Co-authored-by: Matsuuu <16068444+Matsuuu@users.noreply.github.com>
2026-09-15 13:02:15 +03:00
Pierantonio Cangianiello
bb9556b9d5
feat(engine): Add the data plane credentials helper that resolves credentials through the control plane (no-changelog) (#38443)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-14 15:13:43 +00:00
Charlie Kolb
737d66eeb3
build: Remove unused dependencies reported by knip (no-changelog) (#38591)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-14 13:22:42 +00:00
Matsu
3454df1c1b
chore: Remove dead ESLint config and add lint parity tooling (no-changelog) (#38343)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-11 13:33:07 +03:00
Matsu
7be94a1184
chore: Update eslint configuration (#38307)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-10 14:40:35 +03:00
n8n-assistant[bot]
1620ec42ca
🚀 Release 2.39.0 (#38029)
Co-authored-by: Matsuuu <16068444+Matsuuu@users.noreply.github.com>
2026-09-08 11:04:45 +03:00
n8n-release-tag-merge[bot]
4223e6172a Merge tag 'n8n@2.38.0' 2026-09-08 07:40:20 +00:00
Tomi Turtiainen
10bc6ca351
feat(engine): Store the workflow that ran with each engine 2.0 execution (#37858) 2026-09-07 15:05:31 +00:00
Pierantonio Cangianiello
0f86167947
feat(engine): Prepare engine v2 for credential resolution (no-changelog) (#37876)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2026-09-07 10:34:43 +00:00
Tomi Turtiainen
ae26d9599d
feat(engine): Return run data for engine 2.0 executions (#37486)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-03 15:41:04 +00:00
n8n-assistant[bot]
ee7aca5845
🚀 Release 2.38.1 (#37499)
Co-authored-by: Matsuuu <16068444+Matsuuu@users.noreply.github.com>
Co-authored-by: Matsuuu <matias.huhta@n8n.io>
2026-09-01 12:57:43 +03:00
Tomi Turtiainen
b04acabea4
feat(engine): Let the control plane mint the engine 2.0 execution id (#37224) 2026-08-31 14:04:01 +00:00
Danny Martini
66c7e4e9cb
feat(core): Add QuickJS expression engine option alongside isolated-vm (no-changelog) (#33969)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-08-31 13:40:28 +00:00
Tomi Turtiainen
0ba1bd1ad0
feat(engine): Accept production trigger nodes in the v1 workflow converter (#37148) 2026-08-31 11:17:37 +00:00
Tomi Turtiainen
6eb19e1668
feat(engine): Push engine 2.0 execution progress to the editor (#37142)
Some checks are pending
Build: Benchmark Image / build (push) Waiting to run
CI: Master (Build, Test, Lint) / Build for Github Cache (push) Waiting to run
CI: Master (Build, Test, Lint) / Unit tests (24.18.1) (push) Waiting to run
CI: Master (Build, Test, Lint) / Unit tests (26.5.1) (push) Waiting to run
CI: Master (Build, Test, Lint) / Lint (push) Waiting to run
CI: Master (Build, Test, Lint) / Performance (push) Waiting to run
CI: Master (Build, Test, Lint) / Verify single-instance deps (npm-install) (push) Waiting to run
CI: Master (Build, Test, Lint) / Notify Slack on failure (push) Blocked by required conditions
2026-08-27 15:32:25 +00:00
Iván Ovejero
58e05d8ea9
feat(engine): Support Split In Batches loops (no-changelog) (#36723) 2026-08-26 10:46:04 +00:00
n8n-assistant[bot]
541a312dc2
🚀 Release 2.37.0 (#36986)
Co-authored-by: Matsuuu <16068444+Matsuuu@users.noreply.github.com>
2026-08-25 07:32:14 +00:00
Tomi Turtiainen
293e1cc3ad
feat(engine): Route manual runs to the engine 2.0 data plane (#36830) 2026-08-24 14:46:26 +00:00
Tomi Turtiainen
62a0b2af07
feat(engine): Authenticate control plane requests to the engine (#36894) 2026-08-24 12:47:49 +00:00
Tomi Turtiainen
198566c570
refactor(engine): Extract the engine runtime wiring into a factory (no-changelog) (#36504) 2026-08-19 08:39:38 +00:00
Iván Ovejero
4ba4608ea9
feat(core): Support step iterations (no-changelog) (#36489) 2026-08-19 08:13:45 +00:00
Tomi Turtiainen
0deba44cb8
feat: Emit trigger payloads as step output slots (no-changelog) (#36416) 2026-08-18 12:29:18 +00:00
n8n-assistant[bot]
8f82586bba
🚀 Release 2.36.0 (#36483)
Co-authored-by: Matsuuu <16068444+Matsuuu@users.noreply.github.com>
2026-08-18 08:24:56 +00:00
mfsiega
641d9e9aa3
feat(core): Support branch settlement in @n8n/engine (no-changelog) (#35946)
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
2026-08-14 10:55:22 +00:00
Iván Ovejero
42b1f2922f
test(core): Add engine M1 acceptance test suite (#35838) 2026-08-11 11:21:18 +00:00
n8n-assistant[bot]
5102c608eb
🚀 Release 2.35.0 (#36006)
Co-authored-by: n8n-release-helper[bot] <265227495+n8n-release-helper[bot]@users.noreply.github.com>
2026-08-11 07:16:06 +00:00
mfsiega
f695effc6a
feat(core): Shape step IO as slot-indexed lists in @n8n/engine (no-changelog) (#35672)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-07 08:35:42 +00:00
n8n-assistant[bot]
b533ecd685
🚀 Release 2.34.0 (#35487)
Co-authored-by: n8n-release-helper[bot] <265227495+n8n-release-helper[bot]@users.noreply.github.com>
2026-08-04 07:14:55 +00:00
Iván Ovejero
894709233c
feat(core): Resolve expressions in v1 step executor (no-changelog) (#35338) 2026-08-03 10:30:45 +00:00
Iván Ovejero
bcf7502adc
feat(core): Complete v1-to-v2 workflow converter (no-changelog) (#35189) 2026-07-30 14:25:54 +00:00
mfsiega
642ec341dc
feat(core): Add v1 to v2 workflow converter (no-changelog) (#34870)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
2026-07-28 11:58:57 +00:00