mirror of
https://github.com/n8n-io/n8n.git
synced 2026-10-18 14:56:50 +02:00
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> |
||
|---|---|---|
| .. | ||
| docs/adr | ||
| src | ||
| .dockerignore | ||
| .gitignore | ||
| AGENTS.md | ||
| eslint.config.mjs | ||
| oxlint.config.mts | ||
| package.json | ||
| README.md | ||
| tsconfig.build.json | ||
| tsconfig.json | ||
| vitest.config.ts | ||
| vitest.integration.config.ts | ||
@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.