{"collection":{"slug":"workflow-orchestration","name":"Background Jobs & Orchestration"},"digest":{"id":"cwd_a7WPyrOS_N0VoTdfx3_gz","weekStart":"2026-06-22","title":"Experiments bring scientific rigor to live production traffic","intro":"Inngest launched Experiments for safe A/B testing of step functions against live traffic, while n8n shipped n8n@2.28.0 with workflow chaining fixes and both platforms patched critical bugs.","body":"### Experiments: test code changes on live traffic\n\nThe biggest story this week is Inngest's launch of [Experiments](/release/rel_7_BVQlHkz9m82vtINppw7-experiments-safely-test-code-changes-against-live-production-traffic), a feature that lets you safely compare two versions of a step function against real production traffic. You call `group.experiment(\"your-id\", { variants, select })` with the implementations you want to compare and a selection strategy, and Inngest judges each variant on execution data it already records — timing, retries, failures, and cost. The selection is durable: one variant runs per invocation, memoized as a step with weights you can change between deploys. This is a genuine workflow debugging breakthrough — you can now refactor a step with confidence, because you're measuring against the only data that matters: what happens in production.\n\nThe server-side [infrastructure for Experiments](/release/rel_cT1SvHv06bfBisgxYayIY-v1-33-0) shipped in Inngest Server v1.33.0, which also added semaphore routes to the debug API and allowed sessions in the invoke button. The server had a quieter companion in [v1.32.0](/release/rel_kzhTHybb9Sdg5DPJYUxpI-v1-32-0), which brought system queue tracing, session page optimizations, and a dedicated \"Open in Insights\" button on the failed functions chart.\n\n### Inngest SDKs converge on AI metadata and cross-platform support\n\nThe JS SDK hit four minor versions in a single day. [inngest@4.8.0](/release/rel_CIcvlyq7lm4ej7ASuThKr-inngest-4-8-0) added opt-out for AI metadata extraction and an experimental process manager for Node.js. [inngest@4.9.0](/release/rel_0yz5OA5eb9VpRv07tXkAU-inngest-4-9-0) expanded AI step metadata extraction to capture more OTel GenAI span attributes — model, provider, response id, tokens, and request parameters — while continuing to ignore prompt and response content. [inngest@4.10.0](/release/rel_Cmc4rwizDFxpjlQaxnCOJ-inngest-4-10-0) added support for the deprecated `gen_ai.system` attribute for backward compatibility, and [inngest@4.11.0](/release/rel_Mst7WbMNvJ4OdhcNrN3ZI-inngest-4-11-0) added operation name parsing for AI metadata extraction. The [OpenTelemetry package](/release/rel_S20BEhGg_Ts43RflB-URX-inngest-otel-0-2-0) also reached v0.2.0 with CommonJS support, Google AI integration, and a fix for broken Anthropic calls.\n\nThe Python SDK [inngest@0.5.19](/release/rel_juziFHnhawLUohBwn-wOq-inngest-0-5-19) matched the momentum with unauthenticated sync opt-out, request and job IDs on function context, an optional jitter field for `TriggerCron`, and a fix for a PydanticSerializer memory leak.\n\n### n8n stabilizes chained nodes and patches across the board\n\nn8n's [n8n@2.28.0](/release/rel_aDRH8AvYfiE5nRpMwtCP9-n8n-2-28-0) was the week's major release, headlined by a fix for building incorrect chained nodes — a critical correction for anyone composing workflows with conditional branches. The release also tightened the API with a 409 response when deleting a published workflow and fixed Bitbucket Trigger Node credential validation to use `account_id` instead of username.\n\nThe follow-up patches tell a story of rapid iteration. [n8n@2.28.1](/release/rel_4pURfKCPQvo92aHxFNl5o-n8n-2-28-1) verified Instance AI workflows before setup, preventing a broken loop that could crash the workflow verification system. [n8n@2.28.2](/release/rel_iBA_QXcW51RzYSFvAa0lt-n8n-2-28-2) then fixed that broken workflow verification loop in iAI directly. The LTS branch received [n8n@2.27.4](/release/rel_HkGTLrRsDFTC9ORnw8Uo4-n8n-2-27-4), which allowed allowlisted Python packages to import their own submodules via relative imports — a welcome fix for Python node users. Earlier in the week, [n8n@1.123.60](/release/rel_cFsTii1mMha_xvXq-xLf2-n8n-1-123-60) patched 21 security issues across tmp, protobufjs, ws, and eight other dependencies, and excluded error workflow executions from the billable count.","releaseIds":["rel_7_BVQlHkz9m82vtINppw7","rel_cT1SvHv06bfBisgxYayIY","rel_kzhTHybb9Sdg5DPJYUxpI","rel_CIcvlyq7lm4ej7ASuThKr","rel_0yz5OA5eb9VpRv07tXkAU","rel_Cmc4rwizDFxpjlQaxnCOJ","rel_Mst7WbMNvJ4OdhcNrN3ZI","rel_S20BEhGg_Ts43RflB-URX","rel_juziFHnhawLUohBwn-wOq","rel_aDRH8AvYfiE5nRpMwtCP9","rel_4pURfKCPQvo92aHxFNl5o","rel_iBA_QXcW51RzYSFvAa0lt","rel_HkGTLrRsDFTC9ORnw8Uo4","rel_cFsTii1mMha_xvXq-xLf2"],"releaseCount":24,"generatedAt":"2026-07-11T16:56:12.467Z","releases":[{"id":"rel_7_BVQlHkz9m82vtINppw7","title":"Experiments: safely test code changes against live production traffic","path":"/release/rel_7_BVQlHkz9m82vtINppw7-experiments-safely-test-code-changes-against-live-production-traffic","org":{"slug":"inngest","name":"Inngest"},"importance":null},{"id":"rel_cT1SvHv06bfBisgxYayIY","title":"v1.33.0","path":"/release/rel_cT1SvHv06bfBisgxYayIY-v1-33-0","org":{"slug":"inngest","name":"Inngest"},"importance":null},{"id":"rel_kzhTHybb9Sdg5DPJYUxpI","title":"v1.32.0","path":"/release/rel_kzhTHybb9Sdg5DPJYUxpI-v1-32-0","org":{"slug":"inngest","name":"Inngest"},"importance":null},{"id":"rel_CIcvlyq7lm4ej7ASuThKr","title":"inngest@4.8.0","path":"/release/rel_CIcvlyq7lm4ej7ASuThKr-inngest-4-8-0","org":{"slug":"inngest","name":"Inngest"},"importance":null},{"id":"rel_0yz5OA5eb9VpRv07tXkAU","title":"inngest@4.9.0","path":"/release/rel_0yz5OA5eb9VpRv07tXkAU-inngest-4-9-0","org":{"slug":"inngest","name":"Inngest"},"importance":null},{"id":"rel_Cmc4rwizDFxpjlQaxnCOJ","title":"inngest@4.10.0","path":"/release/rel_Cmc4rwizDFxpjlQaxnCOJ-inngest-4-10-0","org":{"slug":"inngest","name":"Inngest"},"importance":null},{"id":"rel_Mst7WbMNvJ4OdhcNrN3ZI","title":"inngest@4.11.0","path":"/release/rel_Mst7WbMNvJ4OdhcNrN3ZI-inngest-4-11-0","org":{"slug":"inngest","name":"Inngest"},"importance":null},{"id":"rel_S20BEhGg_Ts43RflB-URX","title":"@inngest/otel@0.2.0","path":"/release/rel_S20BEhGg_Ts43RflB-URX-inngest-otel-0-2-0","org":{"slug":"inngest","name":"Inngest"},"importance":null},{"id":"rel_juziFHnhawLUohBwn-wOq","title":"inngest@0.5.19","path":"/release/rel_juziFHnhawLUohBwn-wOq-inngest-0-5-19","org":{"slug":"inngest","name":"Inngest"},"importance":null},{"id":"rel_aDRH8AvYfiE5nRpMwtCP9","title":"n8n@2.28.0","path":"/release/rel_aDRH8AvYfiE5nRpMwtCP9-n8n-2-28-0","org":{"slug":"n8n","name":"n8n"},"importance":null},{"id":"rel_4pURfKCPQvo92aHxFNl5o","title":"n8n@2.28.1","path":"/release/rel_4pURfKCPQvo92aHxFNl5o-n8n-2-28-1","org":{"slug":"n8n","name":"n8n"},"importance":null},{"id":"rel_iBA_QXcW51RzYSFvAa0lt","title":"n8n@2.28.2","path":"/release/rel_iBA_QXcW51RzYSFvAa0lt-n8n-2-28-2","org":{"slug":"n8n","name":"n8n"},"importance":null},{"id":"rel_HkGTLrRsDFTC9ORnw8Uo4","title":"n8n@2.27.4","path":"/release/rel_HkGTLrRsDFTC9ORnw8Uo4-n8n-2-27-4","org":{"slug":"n8n","name":"n8n"},"importance":null},{"id":"rel_cFsTii1mMha_xvXq-xLf2","title":"n8n@1.123.60","path":"/release/rel_cFsTii1mMha_xvXq-xLf2-n8n-1-123-60","org":{"slug":"n8n","name":"n8n"},"importance":null}]}}