feat: added keepExecutions state to improve resource allocation #383
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.



This pull request refactors the way switcher executions are tracked and managed, replacing the previous "history" terminology and logic with a clearer "executions" concept. It introduces new methods for managing execution records, improves API clarity, and updates documentation and tests to reflect these changes. This change should also considerably improve performance for local and remote if there is no need to keep the executions results.
Execution management improvements:
historyExecutionmap inSwitcherRequestwithexecutionsMap, and updated all related logic and method names to use "executions" instead of "history". This includes renamingupdateHistoryExecutiontoupdateExecutions, and updating how results are stored and retrieved. [1] [2] [3] [4]flushExecutions()to theSwitcherinterface and implemented it inSwitcherRequestto allow clearing execution records without affecting input entries. [1] [2]API and builder enhancements:
keepExecutionsflag and correspondingkeepExecutions()method toSwitcherBuilder, allowing executions to be retained in memory. Thethrottle()method now automatically enables this. [1] [2] [3]flush()inSwitcherBuildertoresetInputs(), which now only clears input entries, separating input management from executions management. [1] [2]Async execution logic:
AsyncSwitcherto use the new executions map and methods, ensuring consistent terminology and logic throughout asynchronous operations. [1] [2]Code consistency and clarity:
These changes collectively improve the clarity, maintainability, and usability of the switcher API, making execution management more explicit and easier to control.