n8n/packages/@n8n/engine
Florian Gößler edcdcadc9d
perf(engine): Run the createSteps statements as static prepared statements
createSteps built its INSERT with one VALUES tuple per record, so the
statement text changed with the batch size. Now it passes one array for
each column through unnest, so the text is the same for every call.

Both createSteps statements (the execution-row lock and the insert) now
run as named prepared statements on the transaction's connection.
PostgreSQL parses and plans each one once per connection.

WITH ORDINALITY and ORDER BY keep the insert in input order, so
RETURNING still lists the created rows in the order of the records.

Named prepared statements need a direct connection or a session-mode
pooler. A transaction-mode PgBouncer before 1.21 does not support them.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 15:15:02 +02:00
..
docs/adr docs(engine): Add ADR on binary data access from a data plane in a separate process (no-changelog) (#40179) 2026-10-05 12:55:40 +00:00
src perf(engine): Run the createSteps statements as static prepared statements 2026-10-16 15:15:02 +02:00
.dockerignore chore(core): Add @n8n/engine HTTP server and harness (no-changelog) (#29913) 2026-05-08 14:08:11 +00:00
.gitignore chore(core): Scaffold @n8n/engine package (no-changelog) (#29838) 2026-05-06 09:04:24 +00:00
AGENTS.md chore(engine): Use engine v2 naming (#39582) 2026-09-25 07:54:48 +00:00
eslint.config.mjs chore: Migrate database and engine lint to Oxlint (no-changelog) (#39841) 2026-09-29 12:24:22 +00:00
oxlint.config.mts chore: Migrate database and engine lint to Oxlint (no-changelog) (#39841) 2026-09-29 12:24:22 +00:00
package.json 🚀 Release 2.43.0 (#40376) 2026-10-06 07:10:16 +00:00
README.md chore(engine): Use engine v2 naming (#39582) 2026-09-25 07:54:48 +00:00
tsconfig.build.json chore: More Typescript 7 migrations (#34228) 2026-07-16 07:44:11 +00:00
tsconfig.json chore: More Typescript 7 migrations (#34228) 2026-07-16 07:44:11 +00:00
vitest.config.ts chore(core): Add @n8n/engine HTTP server and harness (no-changelog) (#29913) 2026-05-08 14:08:11 +00:00
vitest.integration.config.ts chore(core): Add @n8n/engine HTTP server and harness (no-changelog) (#29913) 2026-05-08 14:08:11 +00:00

@n8n/engine

n8n workflow execution engine (v2).

See the Engine v2 project for context. Public API and core interfaces are still being defined; the package is currently a scaffold and is not yet wired into n8n.

Dependencies

Be careful adding dependencies here. This package should not have runtime dependencies on other n8n components, only interfaces. If there is some functionality that should be shared, it should be factored into a common library.