n8n/packages
Garrit Franke 35fe5daef1
perf(editor): gate node search behind a per-user rate limit and process-wide concurrency cap
Ports the multi-tenant containment from #30294:

- GET /workflows/search-nodes is rate limited per user (120/min); the
  client debounces its keystrokes, which no human can sustain past this
  ceiling.
- The service runs at most one scan per process (pLimit(1)) with a short
  queue of 4, shedding excess with 429. A per-user rate limit cannot
  bound load on a shared database: #30294 measured 66x (SQLite) / 56x
  (Postgres) workflow-list degradation from 20 users each inside their
  own limit; capped at one concurrent scan the same scenario measured
  ~1.3x. In multi-main setups the ceiling is per instance, which is the
  intent: it bounds what a single process can demand of the shared DB.

The command-bar composable already treats a failed request as empty
results, so a shed search degrades gracefully client-side.

Verified: service unit 19/19, integration 23/23 (new shed test) on both
SQLite and Postgres 16; controller unit 11/11; typecheck + lint clean.
2026-08-12 16:36:53 +02:00
..
@n8n perf(editor): harden node search data layer with index, EXISTS sharing and keyset scan 2026-08-12 16:24:01 +02:00
cli perf(editor): gate node search behind a per-user rate limit and process-wide concurrency cap 2026-08-12 16:36:53 +02:00
core perf(core): Resolve webhook description fields via declared native resolvers (#35404) 2026-08-06 11:44:14 +00:00
extensions/insights 🚀 Release 2.34.0 (#35487) 2026-08-04 07:14:55 +00:00
frontend perf(editor): harden node search data layer with index, EXISTS sharing and keyset scan 2026-08-12 16:24:01 +02:00
node-dev chore: Set up repository for TypeScript 7 migration (#33890) 2026-07-09 13:21:16 +03:00
nodes-base feat(Kafka Trigger Node): Add v2 node class and register version 2 (no-changelog) (#35715) 2026-08-10 15:00:11 +00:00
testing test: Pin Instance AI off for the legacy AI Assistant e2e suites (#35928) 2026-08-10 11:37:17 +00:00
workflow perf(editor): harden node search data layer with index, EXISTS sharing and keyset scan 2026-08-12 16:24:01 +02:00