improvement(workflow-execution): perf improvements to passing workflow state + decrypted env vars#2119
Merged
icecrasher321 merged 4 commits intostagingfrom Nov 26, 2025
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
Greptile OverviewGreptile SummaryOptimized workflow execution performance by eliminating redundant database calls and parallelizing environment variable decryption. Key improvements:
The changes maintain identical functionality while reducing execution time through better resource utilization. Confidence Score: 5/5
Important Files ChangedFile Analysis
Sequence DiagramsequenceDiagram
participant Client
participant Route as execute/route.ts
participant Utils as environment/utils.ts
participant Core as execution-core.ts
participant DB as Database
Client->>Route: POST /api/workflows/[id]/execute
Route->>DB: Load workflow state (once)
DB-->>Route: Workflow data (blocks, edges, loops, parallels)
Note over Route: Cache workflow data in<br/>cachedWorkflowData
Route->>Route: Create effectiveWorkflowStateOverride<br/>(user override OR cached data)
alt Non-SSE Execution
Route->>Core: executeWorkflowCore(workflowStateOverride)
Core->>Utils: getPersonalAndWorkspaceEnv()
Utils->>DB: Fetch encrypted env vars
DB-->>Utils: Encrypted variables
Note over Utils: Decrypt ALL vars in parallel<br/>using Promise.all
Utils-->>Core: {encrypted, decrypted} env vars
Note over Core: Use cached workflow state<br/>(no DB reload)
Note over Core: Use pre-decrypted vars<br/>(no redundant decryption)
Core->>Core: Process block states (sync reduce)
Core-->>Route: Execution result
Route-->>Client: JSON response
else SSE Execution
Route->>Route: resolveOutputIds(cachedWorkflowData.blocks)
Note over Route: Use cached data<br/>(no DB reload)
Route->>Core: executeWorkflowCore(workflowStateOverride)
Core->>Utils: getPersonalAndWorkspaceEnv()
Utils->>DB: Fetch encrypted env vars
DB-->>Utils: Encrypted variables
Note over Utils: Decrypt ALL vars in parallel<br/>using Promise.all
Utils-->>Core: {encrypted, decrypted} env vars
Note over Core: Use cached workflow state<br/>(no DB reload)
Note over Core: Use pre-decrypted vars<br/>(no redundant decryption)
Core->>Core: Process block states (sync reduce)
Core-->>Route: Execution result (streaming)
Route-->>Client: SSE stream
end
|
Sg312
approved these changes
Nov 26, 2025
waleedlatif1
added a commit
that referenced
this pull request
Nov 29, 2025
…pylon, intercom, mailchimp, loading optimizations (#2132) * fix(memory-util): fixed unbounded array of gmail/outlook pollers causing high memory util, added missing db indexes/removed unused ones, auto-disable schedules/webhooks after 10 consecutive failures (#2115) * fix(memory-util): fixed unbounded array of gmail/outlook pollers causing high memory util, added missing db indexes/removed unused ones, auto-disable schedules/webhooks after 10 consecutive failures * ack PR comments * ack * improvement(teams-plan): seats increase simplification + not triggering checkout session (#2117) * improvement(teams-plan): seats increase simplification + not triggering checkout session * cleanup via helper * feat(tools): added sentry, incidentio, and posthog tools (#2116) * feat(tools): added sentry, incidentio, and posthog tools * update docs * fixed docs to use native fumadocs for llms.txt and copy markdown, fixed tool issues * cleanup * enhance error extractor, fixed posthog tools * docs enhancements, cleanup * added more incident io ops, remove zustand/shallow in favor of zustand/react/shallow * fix type errors * remove unnecessary comments * added vllm to docs * feat(i18n): update translations (#2120) * feat(i18n): update translations * fix build --------- Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com> * improvement(workflow-execution): perf improvements to passing workflow state + decrypted env vars (#2119) * improvement(execution): load workflow state once instead of 2-3 times * decrypt only in get helper * remove comments * remove comments * feat(models): host google gemini models (#2122) * feat(models): host google gemini models * remove unused primary key * feat(i18n): update translations (#2123) Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com> * feat(tools): added zendesk, pylon, intercom, & mailchimp (#2126) * feat(tools): added zendesk, pylon, intercom, & mailchimp * finish zendesk and pylon * updated docs * feat(i18n): update translations (#2129) * feat(i18n): update translations * fixed build --------- Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com> * fix(permissions): add client-side permissions validation to prevent unauthorized actions, upgraded custom tool modal (#2130) * fix(permissions): add client-side permissions validation to prevent unauthorized actions, upgraded custom tool modal * fix failing test * fix test * cleanup * fix(custom-tools): add composite index on custom tool names & workspace id (#2131) --------- Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com> Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>
DarkShark-RAz
pushed a commit
to DarkShark-RAz/sim
that referenced
this pull request
Nov 30, 2025
…w state + decrypted env vars (simstudioai#2119) * improvement(execution): load workflow state once instead of 2-3 times * decrypt only in get helper * remove comments * remove comments
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Type of Change
Testing
Tested manually running
Checklist