mirror of
https://github.com/n8n-io/n8n.git
synced 2026-06-01 09:17:08 +02:00
Story: https://linear.app/n8n/issue/PAY-926 This PR coordinates workflow activation on instance startup and on leadership change in multiple main scenario in the internal API. Part 3 on manual workflow activation and deactivation will be a separate PR. ### Part 1: Instance startup In multi-main scenario, on starting an instance... - [x] If the instance is the leader, it should add webhooks, triggers and pollers. - [x] If the instance is the follower, it should not add webhooks, triggers or pollers. - [x] Unit tests. ### Part 2: Leadership change In multi-main scenario, if the main instance leader dies… - [x] The new main instance leader must activate all trigger- and poller-based workflows, excluding webhook-based workflows. - [x] The old main instance leader must deactivate all trigger- and poller-based workflows, excluding webhook-based workflows. - [x] Unit tests. To test, start two instances and check behavior on startup and leadership change: ``` EXECUTIONS_MODE=queue N8N_LEADER_SELECTION_ENABLED=true N8N_LICENSE_TENANT_ID=... N8N_LICENSE_ACTIVATION_KEY=... N8N_LOG_LEVEL=debug npm run start EXECUTIONS_MODE=queue N8N_LEADER_SELECTION_ENABLED=true N8N_LICENSE_TENANT_ID=... N8N_LICENSE_ACTIVATION_KEY=... N8N_LOG_LEVEL=debug N8N_PORT=5679 npm run start ``` |
||
|---|---|---|
| .. | ||
| controllers | ||
| ExternalSecrets | ||
| middleware | ||
| repositories | ||
| services | ||
| shared | ||
| ActiveExecutions.test.ts | ||
| CredentialsHelper.test.ts | ||
| CredentialTypes.test.ts | ||
| CurlConverterHelper.test.ts | ||
| execution.lifecycle.test.ts | ||
| Helpers.ts | ||
| InternalHooks.test.ts | ||
| License.test.ts | ||
| PermissionChecker.test.ts | ||
| PostHog.test.ts | ||
| SourceControl.test.ts | ||
| Telemetry.test.ts | ||
| UserManagementMailer.test.ts | ||
| utils.test.ts | ||
| webhooks.test.ts | ||
| WorkflowCredentials.test.ts | ||
| WorkflowExecuteAdditionalData.test.ts | ||
| WorkflowHelpers.test.ts | ||
| workflowHistoryHelper.test.ts | ||
| WorkflowRunner.test.ts | ||