-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor Workflow Runtimes #5444
Commits on Apr 2, 2024
-
Add caching to workflow runtime and workflow management stores
The update introduces caching to workflow runtime and workflow management stores to enhance performance. This is achieved by adding decorators for several stores, which cache records to reduce database fetches. Additionally, a signaler for change tokens allows for cache invalidation when changes occur. The MemoryCache feature has also been updated to include Scrutor for decoration and the caching duration can be configured through the new CachingOptions class.
Configuration menu - View commit details
-
Copy full SHA for 854283d - Browse repository at this point
Copy the full SHA 854283dView commit details
Commits on Apr 3, 2024
-
Refactor WorkflowsMiddleware for HTTP Endpoint bookmarks and triggers
The WorkflowsMiddleware has been extensively refactored to handle HTTP Endpoint bookmarks and triggers. This involves breaking down the InvokeAsync method by extracting parts of its functionality into separate helper methods such as FindTriggersAsync and FindBookmarksAsync. Moreover, Assist with authorization checks, workflow execution within request timeout, and handling of workflow faults has been improved to be more efficient and clearly segmented.
Configuration menu - View commit details
-
Copy full SHA for bcd8c07 - Browse repository at this point
Copy the full SHA bcd8c07View commit details -
Update HTTP endpoint authorization to use Workflow context
The authorization process in the AuthenticationBasedHttpEndpointAuthorizationHandler class has been updated to use the Workflow context instead of the WorkflowInstanceId string. The AuthorizeHttpEndpointContext model has been correspondingly changed to include a Workflow property, thereby strengthening the link between authorization and specific workflows.
Configuration menu - View commit details
-
Copy full SHA for cd87898 - Browse repository at this point
Copy the full SHA cd87898View commit details -
Add FindAsync methods to trigger and bookmark stores
The code adjustments add new FindAsync methods to the trigger and bookmark store contracts as well as all their concrete implementations (MongoDb, Memory and EFCore). These methods support fetching the first record matching a given filter. The adjustments also include minor syntax improvements and the addition of [UsedImplicitly] attributes where needed.
Configuration menu - View commit details
-
Copy full SHA for 0a1814c - Browse repository at this point
Copy the full SHA 0a1814cView commit details -
Refactor WorkflowsMiddleware for improved workflow handling
The code was refactored to simplify the flow of handling workflows in the WorkflowsMiddleware class. Specifically, the methods to start and resume a workflow have been extracted to improve code readability. Further, handleErrorMiddlewares was also updated to better manage instances where no valid workflows or base paths are found.
Configuration menu - View commit details
-
Copy full SHA for 28edb41 - Browse repository at this point
Copy the full SHA 28edb41View commit details -
Add caching functionality to WorkflowsMiddleware
Added IMemoryCache usage in the WorkflowsMiddleware to cache lookup results for workflows and their associated triggers. This will reduce the number of database operations required when searching for workflows, thus improving performance. The cache is maintained for one minute before it is refreshed.
Configuration menu - View commit details
-
Copy full SHA for 92864f6 - Browse repository at this point
Copy the full SHA 92864f6View commit details -
Implement dynamic cache duration for workflows
The code has been updated to have a dynamic cache duration for the workflows instead of a hardcoded one minute. By using the CachingOptions service, the cache duration can now be set in the configuration making it more flexible and adaptable to different performance needs.
Configuration menu - View commit details
-
Copy full SHA for 6652ade - Browse repository at this point
Copy the full SHA 6652adeView commit details -
Add HttpWorkflowsCacheManager for caching HTTP workflows
This commit includes the implementation of IHttpWorkflowsCacheManager for caching of HTTP workflows. New handlers have been added to invalidate cache on workflow updates. Additionally, WorkflowsMiddleware has been renamed to HttpWorkflowsMiddleware.
Configuration menu - View commit details
-
Copy full SHA for 168b36d - Browse repository at this point
Copy the full SHA 168b36dView commit details -
Refactor workflow trigger handling and caching
The refactoring includes deletion of `IndexWorkflowTriggersHandler.cs` and creation of `IndexTriggers.cs` thus revising the workflow trigger indexing approach. Also, revamped the `ITriggerIndexer` interface which now handles deletion of triggers with specific workflow and filter. Furthermore, the caching mechanism in `HttpWorkflowsCacheManager.cs` is modified to handle eviction of workflow definitions and triggers separately boosting its efficiency.
Configuration menu - View commit details
-
Copy full SHA for 97b57f0 - Browse repository at this point
Copy the full SHA 97b57f0View commit details -
Add summary to IndexedWorkflowTriggers
A summary has been added to the 'IndexedWorkflowTriggers' class, providing a brief description. This description outlines that it represents a collection of indexed workflow triggers, promoting clearer understanding for future reference.
Configuration menu - View commit details
-
Copy full SHA for f4553f2 - Browse repository at this point
Copy the full SHA f4553f2View commit details -
Refactor memory caching feature into separate module
This commit separates the memory caching feature from the Elsa.Common module into a distinct Elsa.Caching module. This includes moving and renaming related files, such as the MemoryCacheFeature class and associated dependencies. The references in other modules and in the main solution file have been updated accordingly to include the new Elsa.Caching module.
Configuration menu - View commit details
-
Copy full SHA for 4aff973 - Browse repository at this point
Copy the full SHA 4aff973View commit details -
Add distributed caching and update async methods
Introduced a distributed caching feature with extensible change token signal publishing. Updated various cache-related methods to be asynchronous for improved performance and responsiveness. Also updated some workflow identity references for clarity.
Configuration menu - View commit details
-
Copy full SHA for c90c94c - Browse repository at this point
Copy the full SHA c90c94cView commit details -
Add distributed caching with MassTransit support
This addition includes the implementation of a distributed caching system with MassTransit transport. The changes introduce necessary interfaces and services, new distributed caching feature along with the support for MassTransit as a transport option. Moreover, the instance management feature has been renamed to clustering feature for better clarity.
Configuration menu - View commit details
-
Copy full SHA for 13b59cb - Browse repository at this point
Copy the full SHA 13b59cbView commit details -
Refactor queue naming and scope of MassTransitChangeTokenSignalPublisher
Queue name construction is adjusted in the RabbitMqServiceBusFeature and AzureServiceBusFeature modules for better organization and readability. MassTransitChangeTokenSignalPublisher is now a singleton service, ensuring the signal publisher can be shared across the application, increasing efficiency and performance. Also, introduced use of DistributedCacheFeature in MassTransitDistributedCacheFeature module for better modularization.
Configuration menu - View commit details
-
Copy full SHA for 7c2ce36 - Browse repository at this point
Copy the full SHA 7c2ce36View commit details -
Add caching capabilities to workflow definition service
This commit introduces caching to the workflow definition service, improving the performance for retrieving workflow definitions. 4 new classes have been created (`CachingWorkflowDefinitionService`, `EvictWorkflowDefinitionServiceCache`, `WorkflowDefinitionCacheManager`, and `IWorkflowDefinitionCacheManager`), and several existing classes have been updated to support caching. The caching also includes invalidation mechanisms, ensuring data consistency.
Configuration menu - View commit details
-
Copy full SHA for 6f1eebc - Browse repository at this point
Copy the full SHA 6f1eebcView commit details -
Refactor caching mechanism in workflow definition
In the workflow definition module, the explicit caching functionality related to workflow definition versioning has been removed in favor of a more streamlined approach. Additionally, the manner in which services are registered has been altered. As a result, the caching now directly involves the overall workflow definition rather than individual versions, simplifying the caching logic and potentially improving the performance.
Configuration menu - View commit details
-
Copy full SHA for 3d2d065 - Browse repository at this point
Copy the full SHA 3d2d065View commit details -
Configuration menu - View commit details
-
Copy full SHA for d84d362 - Browse repository at this point
Copy the full SHA d84d362View commit details -
Update MassTransitBroker and enable RealTimeWorkflows and SignalRHubs
The MassTransitBroker has been updated to Memory from RabbitMq. In addition, the RealTimeWorkflows and UseWorkflowsSignalRHubs features are now enabled in the code. This change will impact how the service communicates and processes real-time requests for workflow operations.
Configuration menu - View commit details
-
Copy full SHA for 601509e - Browse repository at this point
Copy the full SHA 601509eView commit details -
Reformat variable types in HttpFeature
The reformatting involves a list of variable types in the HttpFeature module. Each type now appears on a new line for improved readability, making the code easier to maintain and review.
Configuration menu - View commit details
-
Copy full SHA for ef25c50 - Browse repository at this point
Copy the full SHA ef25c50View commit details -
Configuration menu - View commit details
-
Copy full SHA for f8af20c - Browse repository at this point
Copy the full SHA f8af20cView commit details -
Remove unnecessary using directives
Unnecessary using directives were deleted across several files in the Elsa.Http module. This simplifies the code and will possibly improve execution speed. Specific deletions include those for Encoding, Unicode, Extensions, Collections.Generic, Linq, Text, and Tasks namespaces.
Configuration menu - View commit details
-
Copy full SHA for 318dace - Browse repository at this point
Copy the full SHA 318daceView commit details -
Refactor HttpWorkflowsMiddleware constructor
This commit simplifies the HttpWorkflowsMiddleware class constructor. It removes the intermediary variables `_next` and `_options` and directly uses the passed arguments in the constructor. Now, the `next` and `options` parameters are used directly throughout the middleware.
Configuration menu - View commit details
-
Copy full SHA for 9470834 - Browse repository at this point
Copy the full SHA 9470834View commit details -
Simplify workflow retrieval in HttpWorkflowsMiddleware
This refactoring replaces the use of FindWorkflowDefinitionAsync and MaterializeWorkflowAsync with a single method, FindWorkflowAsync. This simplifies the middleware code and likely improves performance by reducing the number of database queries or service calls required to retrieve a workflow.
Configuration menu - View commit details
-
Copy full SHA for 8d617af - Browse repository at this point
Copy the full SHA 8d617afView commit details -
Refactor workflow retrieval in HttpBookmarkProcessor
Simplified the workflow retrieval process in HttpBookmarkProcessor.cs. Replaced FindWorkflowDefinitionAsync and MaterializeWorkflowAsync methods with a single FindWorkflowAsync call. This reduces the complexity and improves efficiency in retrieving workflow.
Configuration menu - View commit details
-
Copy full SHA for 1532025 - Browse repository at this point
Copy the full SHA 1532025View commit details -
Optimize FindWorkflowAsync method in HttpWorkflowsCacheManager
Removed redundant lines of code to simplify workflow search functionality. This change simplified the FindWorkflowAsync method by directly calling the FindWorkflowAsync function in the workflowDefinitionService, thus increasing code readability and efficiency.
Configuration menu - View commit details
-
Copy full SHA for 9455da1 - Browse repository at this point
Copy the full SHA 9455da1View commit details -
Refactor Endpoint.cs for workflow retrieval
The method for obtaining a workflow in the Endpoint.cs script has been refactored and streamlined. The 'GetWorkflowDefinition' method is replaced by the 'GetWorkflowAsync' method which directly retrieves the workflow, without the intermediate step of materializing the workflow definition. This shortens the code and simplifies the process.
Configuration menu - View commit details
-
Copy full SHA for 974dfa3 - Browse repository at this point
Copy the full SHA 974dfa3View commit details -
Refactor InputFunctionsDefinitionProvider constructor
The constructor for InputFunctionsDefinitionProvider has been simplified by removing unnecessary private fields. Services are now directly used in the method instead of being stored in fields. This improves readability and reduces complexity in the class structure.
Configuration menu - View commit details
-
Copy full SHA for 17772a2 - Browse repository at this point
Copy the full SHA 17772a2View commit details -
Refactor WorkflowInstance with improved state handling
Simplified the methods for handling workflow and workflow state in the WorkflowInstance class. The refactoring also included some code clean-ups and variable renaming. The new implementation provides better readability and maintainability of the code by reducing unnecessary lines and improving structuring of objects and responses.
Configuration menu - View commit details
-
Copy full SHA for 5844111 - Browse repository at this point
Copy the full SHA 5844111View commit details -
Remove unused IBookmarkManager and update workflow functions
IBookmarkManager from ProtoActorWorkflowRuntime.cs file is removed due to its redundant status. Additionally, the "FindAsync" method has been updated to use a cancellation token. Also, annotations were added to the "ExportWorkflowStateAsync" and "ImportWorkflowStateAsync" methods to flag calls to functions that require unreferenced code.
Configuration menu - View commit details
-
Copy full SHA for d151fa8 - Browse repository at this point
Copy the full SHA d151fa8View commit details -
Remove unused ReSharper directive
Unused ReSharper directive in the file IndexTriggers.cs was identified and therefore removed. This change makes the code cleaner and easier to read.
Configuration menu - View commit details
-
Copy full SHA for 0882bc7 - Browse repository at this point
Copy the full SHA 0882bc7View commit details -
Update activity invocation in workflow runtime
Updated the DefaultBackgroundActivityInvoker service in the Elsa.Workflows.Runtime module to annotate the ExecuteAsync method with "RequiresUnreferencedCode" attribute. This change is made considering the potential code trimming issue. Additionally, simplified the process of fetching workflow by directly using FindWorkflowAsync method instead of FindWorkflowDefinitionAsync and MaterializeWorkflowAsync methods.
Configuration menu - View commit details
-
Copy full SHA for df99515 - Browse repository at this point
Copy the full SHA df99515View commit details -
Refactor code to simplify workflow definition loading
The code for finding and materializing workflow definitions has been simplified. Instead of loading the definition and materializing it into a workflow in separate steps, a new method called FindWorkflowAsync has been introduced to perform both actions at once. This reduces redundancy and makes the code more readable.
Configuration menu - View commit details
-
Copy full SHA for cac88c5 - Browse repository at this point
Copy the full SHA cac88c5View commit details -
Refactor WorkflowHostFactory to streamline workflow creation
This commit simplifies the workflow creation process in WorkflowHostFactory. It removes redundant code and extraneous methods, specifically the overloaded CreateAsync method which used WorkflowDefinition. Now, it directly finds and uses the Workflow instance, thereby simplifying the code base and improving maintainability.
Configuration menu - View commit details
-
Copy full SHA for a59bd49 - Browse repository at this point
Copy the full SHA a59bd49View commit details -
Refactor workflow retrieval in WorkflowInstance.cs
Changed the way workflow instances are retrieved from the WorkflowDefinitionService. Instead of obtaining the workflow definition and then materializing the workflow from it, the workflow is directly retrieved using the FindWorkflowAsync function. This simplifies the code and avoids unnecessary null-checks.
Configuration menu - View commit details
-
Copy full SHA for 85feb33 - Browse repository at this point
Copy the full SHA 85feb33View commit details -
Remove unnecessary whitespace in WorkflowInstance.cs
An extraneous whitespace character was identified and removed in the WorkflowInstance.cs file. This change contributes towards maintaining clean and readable code in the Elsa.ProtoActor module.
Configuration menu - View commit details
-
Copy full SHA for a3c9d1b - Browse repository at this point
Copy the full SHA a3c9d1bView commit details -
Remove unnecessary comment in ProtoActorWorkflowRuntime
The unnecessary comment ("Load the workflow definition.") in the method TryStartWorkflowAsync of the ProtoActorWorkflowRuntime.cs file was removed. This is part of an ongoing effort to keep the codebase clean and readable.
Configuration menu - View commit details
-
Copy full SHA for 51ee271 - Browse repository at this point
Copy the full SHA 51ee271View commit details
Commits on Apr 4, 2024
-
Update workflow management features and handlers
Added explicit notification handlers for DeleteWorkflowInstances and RefreshActivityRegistry in WorkflowManagementFeature.cs. Also, renamed RefreshActivityRegistryHandler.cs to RefreshActivityRegistry.cs for better clarity.
Configuration menu - View commit details
-
Copy full SHA for a67cf7c - Browse repository at this point
Copy the full SHA a67cf7cView commit details -
Add multiple log record support to workflow execution log stores
The major change of this commit is the addition of methods to add multiple log records in the WorkflowExecutionLogStore, across different storage modules such as EntityFramework, MongoDB, Dapper, Elasticsearch and Memory. This ensures consistency and uniform behavior across different storage types. Furthermore, some reformatting and tidying up of the code were undertaken to maintain readability and clarity.
Configuration menu - View commit details
-
Copy full SHA for 175da9c - Browse repository at this point
Copy the full SHA 175da9cView commit details -
Remove redundant workflow definition check
The workflow definition existence check and related service retrieval were removed from HttpWorkflowsMiddleware.cs. It was determined that this check was unnecessary as the workflow definition's existence is guaranteed at this point in the process, reducing redundancy in the code.
Configuration menu - View commit details
-
Copy full SHA for 3ef082f - Browse repository at this point
Copy the full SHA 3ef082fView commit details
Commits on Apr 5, 2024
-
Improve cancellation token usage in workflow execution
This commit refines the usage of cancellation tokens during the execution of workflows in Elsa.Server and HttpWorkflowsMiddleware. Previously, a cancellation token pair was created before ExecuteWithinTimeoutAsync was called, which limited duration control solely to that method. Now, cancellation tokens are included within ExecuteWithinTimeoutAsync method. This allows the method to observe any cancellation initiated by outer scopes, enhancing control over the timeout of operations.
Configuration menu - View commit details
-
Copy full SHA for ec372ca - Browse repository at this point
Copy the full SHA ec372caView commit details
Commits on Apr 6, 2024
-
Add PersistStateAsync method to WorkflowHost
A new PersistStateAsync method has been added to the WorkflowHost, which enables the host to directly persist its own state. The method has been integrated into the DefaultWorkflowRuntime and HttpWorkflowsMiddleware. This update eliminates the need to continuously get instances of IWorkflowInstanceManager to save state, which improves efficiency and code readability.
Configuration menu - View commit details
-
Copy full SHA for 324b5e5 - Browse repository at this point
Copy the full SHA 324b5e5View commit details -
Refactor DefaultAlterationRunner service
This update simplifies the DefaultAlterationRunner service, reducing the number of code lines and removing unnecessary references. The workflow materialization step has been merged with the find workflow step, and unused namespaces have been dropped.
Configuration menu - View commit details
-
Copy full SHA for 8ec925a - Browse repository at this point
Copy the full SHA 8ec925aView commit details -
Refine wording in IWorkflowHost interface documentation
The documentation for the 'CanStartWorkflowAsync' method in the IWorkflowHost interface has been cleaned up. The superfluous "or not" verbiage has been removed, making it easier to understand the method's function.
Configuration menu - View commit details
-
Copy full SHA for 3af63cd - Browse repository at this point
Copy the full SHA 3af63cdView commit details -
Remove CancellationTokens struct and simplify cancellation handling
Removed the CancellationTokens struct and all its references across the code base. Simplified cancellation handling by using standard CancellationToken only. Also cleaned up redundant usages and unnecessary namespaces across various modules. This simplification better aligns with standard .NET conventions and reduces the code complexity.
Configuration menu - View commit details
-
Copy full SHA for 8aa8417 - Browse repository at this point
Copy the full SHA 8aa8417View commit details -
Implement ActivityHandle for better activity identification
The ActivityHandle class has been introduced to consolidate various activity identification parameters such as ActivityId, ActivityNodeId, ActivityInstanceId, and ActivityHash. This makes it easier to track and manage activities by reducing the number of parameters needed for identification. Adoption of ActivityHandle has been implemented across the codebase.
Configuration menu - View commit details
-
Copy full SHA for 0a629a1 - Browse repository at this point
Copy the full SHA 0a629a1View commit details -
Remove AzureContainerApps related code
This commit includes the removal of all the AzureContainerApps associated code from the ProtoActor Cluster. The deletion includes multiple files which had housed the AzureContainerApps cluster provider and all its supporting services, util functions, options, contracts, and models. This move might be towards refactoring the structure or removal of unwanted dependencies.
Configuration menu - View commit details
-
Copy full SHA for b86705d - Browse repository at this point
Copy the full SHA b86705dView commit details -
Add distributed execution runtime and client
Removed some unused classes and created a distributed execution runtime using distributed locking and persistence. Introduced an interface for workflow clients and implemented two versions, a local one and one using `Proto.Actor`. Made some changes in other modules to add the necessary interfaces and methods. Also, added `DistributedLockingRuntime` module to implement distributed execution.
Configuration menu - View commit details
-
Copy full SHA for 7ca01ae - Browse repository at this point
Copy the full SHA 7ca01aeView commit details -
Remove WorkflowClient.cs from Elsa.Workflows.Runtime
The WorkflowClient.cs file was removed from the Elsa.Workflows.Runtime project. It held placeholder methods that had not yet been implemented, making it unnecessary in the current codebase.
Configuration menu - View commit details
-
Copy full SHA for dcb9abf - Browse repository at this point
Copy the full SHA dcb9abfView commit details
Commits on Apr 7, 2024
-
Add ProtoActor implementation for workflow execution
Added ProtoActor implementation for executing workflow instances. This includes ProtoBuf message definitions, grain interfaces and implementations, and various ProtoActor services. Extended WorkflowHost and related components to provide more execution details in order to better support distributed processing via ProtoActor.
Configuration menu - View commit details
-
Copy full SHA for 837e9a8 - Browse repository at this point
Copy the full SHA 837e9a8View commit details -
Refactor workflow parameters to workflow requests
The refactor includes renaming old 'WorkflowParams' classes to 'WorkflowRequest' to better represent their usage. The changes have been made across all the involved modules ensuring that the project maintains consistency. New properties, methods, and class names were updated accordingly.
Configuration menu - View commit details
-
Copy full SHA for 81ce49d - Browse repository at this point
Copy the full SHA 81ce49dView commit details -
Add ProtoActor implementation for data mappers
This update adds the ProtoActor implementation for data mappers and updates the DI configuration accordingly. It also updates the client interfaces for a more streamlined usage, and refactors the WorkflowHost to adapt to these changes. All changes were implemented in accordance with the new bookmark information model.
Configuration menu - View commit details
-
Copy full SHA for ff3956d - Browse repository at this point
Copy the full SHA ff3956dView commit details -
Add functionality to create a new workflow instance
This commit introduces the capability to create a new workflow instance in the Elsa Workflow Runtime by enhancing existing workflow classes and creating the WorkflowClientFactoryExtensions class, in addition to adding the "IsNewInstance" parameter to multiple workflows and requests. It provides more flexibility in managing workflow instances and aids in building workflow processes that require instantiation of a new workflow.
Configuration menu - View commit details
-
Copy full SHA for aa26566 - Browse repository at this point
Copy the full SHA aa26566View commit details -
Remove Elsa.Runtimes.DistributedLockingRuntime module
This commit deletes the Elsa.Runtimes.DistributedLockingRuntime module from the project. Changes include removed code files related to features, services and commands under this module. The Elsa.sln file has been updated to reflect these changes, excluding the removed module from the solution.
Configuration menu - View commit details
-
Copy full SHA for 23d9ddb - Browse repository at this point
Copy the full SHA 23d9ddbView commit details -
Add dynamic client type to WorkflowClientFactory
The WorkflowClientFactory now accepts a client Type parameter for dynamic client creation. This enables the factory to create different subclasses of IWorkflowClient based on the provided Type. The CreateClient function is updated in the WorkflowClientFactoryExtensions and IWorkflowClientFactory interface, and applied in HttpWorkflowsMiddleware.
Configuration menu - View commit details
-
Copy full SHA for 5349afd - Browse repository at this point
Copy the full SHA 5349afdView commit details -
Implement Proto.Actor support in Elsa
A comprehensive change that introduces support for Proto.Actor clustering to Elsa. It includes a redesign of the workflow client invocation model, transitioning the methods from synchronous to asynchronous. Also, modification to the Proto.Actor-based 'WorkflowGrain' was made to handle state recovery and execution processing. The structural enhancements improve scalability and performance capabilities.
Configuration menu - View commit details
-
Copy full SHA for a84fbc7 - Browse repository at this point
Copy the full SHA a84fbc7View commit details -
Refactor null-checks in SaveSnapshotAsync method
Simplified the null-checking in the method SaveSnapshotAsync within WorkflowGrain.cs. The check on _workflowHost and workflowState has been shortened using conditional access operator, improving the code readability.
Configuration menu - View commit details
-
Copy full SHA for 31e117b - Browse repository at this point
Copy the full SHA 31e117bView commit details
Commits on Apr 10, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 95d5a6e - Browse repository at this point
Copy the full SHA 95d5a6eView commit details
Commits on Apr 14, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 9c5321b - Browse repository at this point
Copy the full SHA 9c5321bView commit details -
Refactor code and update packages
The codebase has undergone a major refactoring to improve code readability and consistency, with non-essential methods being removed and variable names being optimized for clarity. Package references for Proto.Actor and related packages have been also updated to the latest versions.
Configuration menu - View commit details
-
Copy full SHA for 84943d0 - Browse repository at this point
Copy the full SHA 84943d0View commit details -
Add Proto.Cluster.AzureContainerApps package to Directory.Packages.props
The Proto.Cluster.AzureContainerApps package with version 1.6.0 has been included in the Directory.Packages.props file. This addition extends the range of Proto.Cluster packages used in the project.
Configuration menu - View commit details
-
Copy full SHA for 3589bec - Browse repository at this point
Copy the full SHA 3589becView commit details -
Remove redundant Proto.Actor implementation files
This commit removes several redundant files related to the Proto.Actor implementation. These files were unnecessary and were cluttering up the codebase. With this removal, the project has become leaner and easier to maintain. It also eliminates potential confusion for future developers working on this project.
Configuration menu - View commit details
-
Copy full SHA for 2454768 - Browse repository at this point
Copy the full SHA 2454768View commit details
Commits on Apr 15, 2024
-
Add WorkflowMatcher and replace BookmarkHasher with StimulusHasher
This commit introduces a new class, WorkflowMatcher, which represents a contract for finding triggers and bookmarks associated with workflow activities. It also renames and replaces all instances of BookmarkHasher with StimulusHasher to reflect a more accurate function relating to stimulus rather than bookmarks. Other necessary changes were made to ensure consistency with these updates across different classes. It's important to note that WorkflowInbox interface is now marked as obsolete.
Configuration menu - View commit details
-
Copy full SHA for aab4963 - Browse repository at this point
Copy the full SHA aab4963View commit details -
Configuration menu - View commit details
-
Copy full SHA for a62cd2b - Browse repository at this point
Copy the full SHA a62cd2bView commit details
Commits on Apr 16, 2024
-
Configuration menu - View commit details
-
Copy full SHA for da7ee1e - Browse repository at this point
Copy the full SHA da7ee1eView commit details
Commits on Apr 17, 2024
-
Refactor codebase to support new IWorkflowInvoker and invoke workflow…
… logic Multiple files updated to introduce a `IWorkflowInvoker` interface, implementation and supporting classes. This simplified how workflows are instantiated and invoked. Consequently, necessary adjustments made across multiple entities and endpoints to account for the updated invocation procedure. Old logic related to counting running workflows removed. Introduced stimulus concept while deprecating non-compliant classes and methods.
Configuration menu - View commit details
-
Copy full SHA for ff76ba6 - Browse repository at this point
Copy the full SHA ff76ba6View commit details
Commits on Apr 26, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 5364441 - Browse repository at this point
Copy the full SHA 5364441View commit details -
Update patch version in GitHub workflows
The version number used in the branch checking step of the GitHub workflows has been updated. Instead of scanning for the branch containing the patch version 3.1.2, it now scans for the branch that contains version 3.1.3. This change is aligned with the updated product version.
Configuration menu - View commit details
-
Copy full SHA for 18ca2d8 - Browse repository at this point
Copy the full SHA 18ca2d8View commit details -
Update git branch grep pattern in workflow file
The git grep pattern has been corrected to properly identify tagged versions in the GitHub Actions workflow. The correction ensures that the workflow script fetches the right branches as per the release tag instead of patch.
Configuration menu - View commit details
-
Copy full SHA for 3f51cee - Browse repository at this point
Copy the full SHA 3f51ceeView commit details -
Update grep command in packages workflow
The grep command used in the 'packages.yml' GitHub workflow was previously looking for the exact 'refs/tags/3.1.3' string. This commit simplifies the command by making it only look for '3.1.3'. This adjustment will streamline the process and potentially prevent issues with branch recognition.
Configuration menu - View commit details
-
Copy full SHA for 8c61844 - Browse repository at this point
Copy the full SHA 8c61844View commit details -
Configuration menu - View commit details
-
Copy full SHA for 21ab77c - Browse repository at this point
Copy the full SHA 21ab77cView commit details -
Update package versions and refactor code for Elasticsearch and JavaS…
…cript modules Updated versions of numerous packages in the Directory.Packages.props file to their latest stable releases. This includes updates to Elasticsearch, JavaScript, and MongoDB packages among others. Additionally, refactored parts of the code in the WorkflowInstanceConfiguration and JintJavaScriptEvaluator within the Elasticsearch and JavaScript modules, respectively, to improve index management and script preparation. The WorkflowInstanceStore also saw a minor adjustment.
Configuration menu - View commit details
-
Copy full SHA for 433f064 - Browse repository at this point
Copy the full SHA 433f064View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4cdaa2c - Browse repository at this point
Copy the full SHA 4cdaa2cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 69a3237 - Browse repository at this point
Copy the full SHA 69a3237View commit details
Commits on Apr 27, 2024
-
Refactor workflow management with workflow definition handles
The existing workflow management has been significantly refactored, introducing the concept of "Workflow Definition Handles". These handles allow for consistent management whether we're dealing with a specific workflow definition, a version of a definition, or more flexible version constraints. This refactor also adjusts how workflow instances are created, now using a more intuitive and detailed "WorkflowInstanceOptions" approach.
Configuration menu - View commit details
-
Copy full SHA for 996c1a2 - Browse repository at this point
Copy the full SHA 996c1a2View commit details -
Add ResumeBookmarkResult and update related methods
Implemented a ResumeBookmarkResult class to handle bookmark resumption results. Methods related to resuming bookmarks have been refactored to return this new class, providing more information such as bookmarks' matched state. Also, some methods were optimized to break the loop early if no bookmarks were found, improving code efficiency.
Configuration menu - View commit details
-
Copy full SHA for 02ea799 - Browse repository at this point
Copy the full SHA 02ea799View commit details -
Update workflow definition, execution and correlation
This commit focuses on enhancements and adjustments to workflow definition and execution. Notable changes include the addition of ExecuteResponse model and new test workflow scenarios. Refactoring has been performed to improve readability and efficiency in various components. It also includes an important fix for the correct application of WorkflowDefinition filters, primarily using both DefinitionId and DefinitionVersionId for more accurate results.
Configuration menu - View commit details
-
Copy full SHA for d1f4091 - Browse repository at this point
Copy the full SHA d1f4091View commit details
Commits on May 1, 2024
-
Configuration menu - View commit details
-
Copy full SHA for d2742f3 - Browse repository at this point
Copy the full SHA d2742f3View commit details -
Refactor runtime codebase for better structure and workflow control
This commit involves changes to functionally reorganize the runtime codebase for improved structure. It also allows for better handling of workflows, particularly through the addition of original bookmarks in the workflow execution context. Removed unnecessary dependencies and ensured more efficient management of bookmarks in the workflow running process. Several method and class names were also updated to better reflect their purpose.
Configuration menu - View commit details
-
Copy full SHA for 93e067b - Browse repository at this point
Copy the full SHA 93e067bView commit details -
Refactor WorkflowInvoker and remove 'OriginalBookmarks'
Optimized the constructor of 'WorkflowInvoker' by using 'IServiceScopeFactory' to get instances of required services. Removed the 'OriginalBookmarks' property from 'WorkflowStateExtractor' and 'WorkflowState', a subsequent change included in 'WorkflowGraphBuilder' as well. Reorganized the namespaces in 'Elsa.Workflows.ComponentTests' project. Added 'UseCache' in WorkflowServer configurations.
Configuration menu - View commit details
-
Copy full SHA for 28aa62e - Browse repository at this point
Copy the full SHA 28aa62eView commit details
Commits on May 8, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 434e1c6 - Browse repository at this point
Copy the full SHA 434e1c6View commit details -
Removed RunWorkflowParams class
This update deletes the RunWorkflowParams class within the Runtime Requests of the Elsa.Workflows module. The class was no longer needed, hence the elimination and cleanup in the codebase.
Configuration menu - View commit details
-
Copy full SHA for 234980f - Browse repository at this point
Copy the full SHA 234980fView commit details -
Update RunWorkflowParamsMapper to handle null or empty fields
This commit modifies the RunWorkflowParamsMapper in the Elsa.ProtoActor module. It primarily treats the BookmarkId and TriggerActivityId fields to return null if they are empty, boosting the application's robustness against potential null or empty field issues.
Configuration menu - View commit details
-
Copy full SHA for 863a13f - Browse repository at this point
Copy the full SHA 863a13fView commit details -
Refactor workflow handling and improve null checks
In this update, the handling of workflows was refactored to improve efficiency. The 'RunAsync' method now correctly uses 'WorkflowGraph' as a parameter, instead of 'Workflow'. Additionally, null checks for 'bookmarkId' and 'activityHandle.ActivityInstanceId' have been improved to avoid null and empty strings. Finally, when '_workflowInstanceId' is null in the 'WorkflowGrain' class, it is now properly initialized by parsing the cluster identity.
Configuration menu - View commit details
-
Copy full SHA for 774709a - Browse repository at this point
Copy the full SHA 774709aView commit details -
Enable ProtoActor in Elsa.Server.Web
This commit turns on the use of ProtoActor within the Elsa.Server.Web bundle. This switch may affect the system's behavior and performance.
Configuration menu - View commit details
-
Copy full SHA for 64ec981 - Browse repository at this point
Copy the full SHA 64ec981View commit details
Commits on May 9, 2024
-
Added new workflow scheduling and management features
Implemented new features for creating, running, and scheduling workflow instances. The implementation added new files for handling workflow runtime and scheduling features, including creating and running a workflow instance request, a mapper for the request, and handler services. Modified files include updating method calls according to the new requests, updating workflow definitions, and adjustment to method arguments in Hangfire job class.
Configuration menu - View commit details
-
Copy full SHA for 9a789df - Browse repository at this point
Copy the full SHA 9a789dfView commit details -
Handle null or empty workflow instance IDs and correlation IDs
This commit introduces null checks for workflow instance IDs and correlation IDs in the workflow infrastructure. Previously, the code assumed that the IDs were provided. It now gracefully handles cases where they might be null or empty, preventing possible null reference exceptions and ensuring more robust workflow execution.
Configuration menu - View commit details
-
Copy full SHA for 0721cb1 - Browse repository at this point
Copy the full SHA 0721cb1View commit details -
Update mapping details in ResumeWorkflowJob
Removed unnecessary using statement for Elsa.Workflows.Runtime.Requests in ResumeWorkflowJob.cs. Updated references from DispatchWorkflowInstanceRequest to ScheduleExistingWorkflowInstanceRequest for retrieving ActivityHandle and WorkflowInstanceId.
Configuration menu - View commit details
-
Copy full SHA for a49147a - Browse repository at this point
Copy the full SHA a49147aView commit details -
Refactor AzureServiceBus module and integrate into web project
In this commit, changes were made to the AzureServiceBus module to use Topic definitions for subscriptions. The Subscriptions property in the AzureServiceBusOptions and the Topic property in the SubscriptionDefinition class are marked as obsolete and suggestions to use TopicDefinition.Subscriptions instead have been added. The AzureServiceBus module was also integrated into the web project and configured to use options from the appsettings.json.
Configuration menu - View commit details
-
Copy full SHA for 2d2188e - Browse repository at this point
Copy the full SHA 2d2188eView commit details -
Refactor code to use async scopes and improve service dependencies
Refactored code to use async scopes for improved task management. Also organized service dependencies better by moving service fetching inside methods where they are needed and propagating necessary dependencies through method parameters for cleaner code.
Configuration menu - View commit details
-
Copy full SHA for 2be6d41 - Browse repository at this point
Copy the full SHA 2be6d41View commit details
Commits on May 10, 2024
-
Add Azure Service Bus workflow component tests
This commit introduces a set of workflow component tests for Azure Service Bus integration. These tests encompass scenarios like message receiving, sending messages with correlation IDS, and sending single messages. In addition, 'SignalResetEvent' test helper was removed, a new test helper 'TriggerSignal' was added, and a Mock ServiceBusClient and ServiceBusAdministrationClient were added to the WorkflowServer fixture. Lastly, the NSubstitute package was added to the test project's dependencies.
Configuration menu - View commit details
-
Copy full SHA for 5baa01d - Browse repository at this point
Copy the full SHA 5baa01dView commit details -
Configuration menu - View commit details
-
Copy full SHA for d77a2f0 - Browse repository at this point
Copy the full SHA d77a2f0View commit details
Commits on May 11, 2024
-
Add support for deferred tasks in workflow execution context
Added support for deferred tasks in the workflow execution context. This implementation allows tasks to be deferred and executed right after persistence of bookmarks in the workflow. A new middleware, ExecuteDeferredActivityTasks, is introduced to handle the execution of these deferred tasks.
Configuration menu - View commit details
-
Copy full SHA for e1c886b - Browse repository at this point
Copy the full SHA e1c886bView commit details -
Refactor TriggerSignal and SendMessage activity execution
Refactored the execution of TriggerSignal and SendMessage activities by using context.DeferTask to ensure the activities run asynchronously. Also, made code format modifications and simplifications such as handling ApplicationProperties better in the SendMessage activity, and other minor changes.
Configuration menu - View commit details
-
Copy full SHA for 5689937 - Browse repository at this point
Copy the full SHA 5689937View commit details -
Update workflow ID generation method
The workflow ID generation method has been updated in the WorkflowBuilder. Previously, it was always generated by _identityGenerator. Now, it only gets generated if the definitionId or Id is null or empty, otherwise it uses the existing value. This change brings the ID generation practice in line with how we handle definitionId.
Configuration menu - View commit details
-
Copy full SHA for 6ec3258 - Browse repository at this point
Copy the full SHA 6ec3258View commit details -
Add support for service bus testing in workflow tests
Two new helper classes, DictionaryExtensions and MockServiceBusProcessor, have been added to support mocking Azure service bus in workflow component tests. Also, the tests have been updated to use SignalManager to ensure proper order of execution. The WorkflowServer test fixture has been extensively refactored to create mock instances of service bus senders and processors. Furthermore, some configurations have been commented out and new configurations related to MemoryTriggerStore and MemoryBookmarkStore have been added.
Configuration menu - View commit details
-
Copy full SHA for 8cde579 - Browse repository at this point
Copy the full SHA 8cde579View commit details -
Enhanced workflow correlation and caching in Elsa Workflows
This update improves Elsa Workflows by enabling caching and enhancing correlation in Correlate.cs. It expands functionality by adding new methods that accept various input types and provide more options for activities correlation. Correlation improvements also extend to AzureServiceBusTests, which were updated to test workflow instances by correlation ID. Furthermore, the test workflow received a name change and new correlation mechanics based on Azure messaging.
Configuration menu - View commit details
-
Copy full SHA for 3ab4ecb - Browse repository at this point
Copy the full SHA 3ab4ecbView commit details -
Renamed method argument from 'payload' to 'stimulus'
The method argument 'payload' in various functions across 'MessageReceived.cs' and 'ActivityExecutionContext.cs' files has been renamed to 'stimulus'. This change was made to improve code readability and understanding by using a more context-specific term.
Configuration menu - View commit details
-
Copy full SHA for ae84c12 - Browse repository at this point
Copy the full SHA ae84c12View commit details -
Refactor Workflow APIs and enhance logging
Refactored Workflow APIs by removing the TriggerActivityId from StimulusMetadata and introducing Direct Triggers. Refactored Reenter method in WorkflowGrain to be more concise and straightforward. Enhanced logging by adding additional logging in ActivityExecutionPipeline and LogLevel in appsettings. Also, updated ProtoActorFeature for better log level management.
Configuration menu - View commit details
-
Copy full SHA for e33c4f5 - Browse repository at this point
Copy the full SHA e33c4f5View commit details -
Refactor AzureServiceBusTests and add workflow completion signal
The AzureServiceBusTests class is refactored to separate and encapsulate concerns. SignalManager and WorkflowEvents are now class-level variables. Also, a signal to indicate the completion of a workflow is added. This allows the test to wait for workflow completion in the sequence of its operations. Additionally, the workflow definition ID in MessageReceivedTriggerWorkflow is now static and fixed, rather than dynamically derived from the class name.
Configuration menu - View commit details
-
Copy full SHA for 3c8f4f0 - Browse repository at this point
Copy the full SHA 3c8f4f0View commit details
Commits on May 12, 2024
-
Refactor methods to streamline workflow creation and execution
The changes primarily consolidate the process of creating and running a workflow instance into a single operation. Specifically, the 'CreateAndRunWorkflowInstanceRequest' class is utilized in multiple modules to simplify and streamline the workflow creation process. Also, several redundant and inefficient methods were removed in the 'WorkflowGrain' module, and the remaining methods were updated to return the required response directly, resulting in cleaner, more efficient code.
Configuration menu - View commit details
-
Copy full SHA for cac9fc1 - Browse repository at this point
Copy the full SHA cac9fc1View commit details -
Refactor asynchronous serialization to synchronous
Simplified serialization by converting all asynchronous tasks in the workflow state serializer to synchronous ones. This change affects Elsa's Core, Dapper, EntityFrameworkCore, Management, and ProtoActor modules, as well as the Workflow State Serializer - switching all async workflow state serialization methods to their synchronous equivalents.
Configuration menu - View commit details
-
Copy full SHA for d56fc78 - Browse repository at this point
Copy the full SHA d56fc78View commit details
Commits on May 14, 2024
-
Removed Elsa.ServiceBus.IntegrationTests project
The Elsa.ServiceBus.IntegrationTests project and all related files and references were removed from the solution. This update affects the main application and several workflow files, scenarios, and helper methods.
Configuration menu - View commit details
-
Copy full SHA for 5deb923 - Browse repository at this point
Copy the full SHA 5deb923View commit details -
Refactor WorkflowGrain and update ProtoActor timeouts
Renamed the Method OnStopped to async and replaced Context.Stop with Context.Poison in the Method Stop within the WorkflowGrain.cs. Also, adjusted the ActorRequestTimeout to a shorter duration and commented out the LegacyRequestTimeoutBehavior() in ProtoActorFeature.cs. These changes aim to enhance the efficiency and performance of the system.
Configuration menu - View commit details
-
Copy full SHA for 66ebc3f - Browse repository at this point
Copy the full SHA 66ebc3fView commit details
Commits on May 17, 2024
-
Refactor Workflow execution and ProtoActor interaction
This commit refactors the execution of workflows to manage re-entrancy and improve sequential calls. It also modifies the interaction model between ProtoActor grains and clients by following the ask-pattern. The ProtoWorkflowSubStatus enumeration has been extended to include a "Pending" state. The ActorRequestTimeout has been increased for better debugging.
Configuration menu - View commit details
-
Copy full SHA for d0f9eb6 - Browse repository at this point
Copy the full SHA d0f9eb6View commit details -
Remove unused queue and receive timeout in WorkflowGrain
The _executionQueue was initialized but never used in the WorkflowGrain class. This removal leads to cleaner and less confusing code. Additionally, the Context.SetReceiveTimeout method call has been removed from OnStarted method as it's no longer needed.
Configuration menu - View commit details
-
Copy full SHA for 4759058 - Browse repository at this point
Copy the full SHA 4759058View commit details -
Add ProtoActor to WorkflowServer runtime
In the WorkflowServer of Elsa Workflows Component Tests, the ProtoActor has been added to the runtime settings. This enhances the overall functionality and efficiency of the server.
Configuration menu - View commit details
-
Copy full SHA for daeca48 - Browse repository at this point
Copy the full SHA daeca48View commit details -
Add new component tests for Elsa.AzureServiceBus and remove old unit …
…tests In this commit, a new set of component tests for Elsa.AzureServiceBus have been added, providing more detailed and reliable testing. Simultaneously, several old unit test files and projects have been removed as they're no longer relevant or useful. These include tests in the 'Elsa.Workflows.Runtime.UnitTests1', 'Elsa.Activities.UnitTests' and 'Elsa.JavaScript.UnitTests' namespaces among others. The decision to remove these tests is motivated by the desire to streamline the testing process and focus on the most meaningful and reliable tests.
Configuration menu - View commit details
-
Copy full SHA for 6ec8e87 - Browse repository at this point
Copy the full SHA 6ec8e87View commit details -
Rename GlobalUsings.cs to Usings.cs in integration tests
Renamed the GlobalUsings.cs file to Usings.cs in the Elsa.Alterations.IntegrationTests project to better reflect its purpose. This change is intended to improve clarity within the codebase.
Configuration menu - View commit details
-
Copy full SHA for 5ac4d03 - Browse repository at this point
Copy the full SHA 5ac4d03View commit details -
Refactor Azure service bus testing setup to separate extension
This commit abstracts the setup for Azure service bus testing into a separate extension named AzureServiceBusServiceCollectionExtensions. The code has been removed from the WorkflowServer class, contributing to a cleaner and more modular codebase. This enhancement will facilitate better unit testing and reduce redundancy in test setup.
Configuration menu - View commit details
-
Copy full SHA for 61ab247 - Browse repository at this point
Copy the full SHA 61ab247View commit details -
Uncomment 'Description' and remove 'OptionsProvider' and 'OptionsMethod'
In the 'InputAttribute.cs' file, the 'Description' property has been uncommented to allow for a brief description of properties during workflow tooling. Furthermore, the 'OptionsProvider' and 'OptionsMethod' properties have been removed, simplifying the attribute options handling.
Configuration menu - View commit details
-
Copy full SHA for 0866a02 - Browse repository at this point
Copy the full SHA 0866a02View commit details -
Enable Azure Service Bus module
The change updates the 'useAzureServiceBusModule' constant from false to true in the Elsa.Server.Web Program.cs file. This adjustment allows the application to employ the Azure Service Bus module.
Configuration menu - View commit details
-
Copy full SHA for 99f9064 - Browse repository at this point
Copy the full SHA 99f9064View commit details
Commits on May 18, 2024
-
Refactor ProtoActor module for workflow instance focus
The main changes in this commit revolve around renaming and refactoring to orient the ProtoActor module toward handling workflow instances. In the process, unnecessary imports have been removed, classes have been renamed to reflect their new focus on workflow instances, and various related elements such as protobuf files and services have also been renamed and refactored to align with these changes.
Configuration menu - View commit details
-
Copy full SHA for 5bcf377 - Browse repository at this point
Copy the full SHA 5bcf377View commit details -
Change AnalysisModeDocumentation to 'AllDisabledByDefault'
The AnalysisModeDocumentation setting in Directory.Build.props has been updated to 'AllDisabledByDefault' from 'Default'. This change disables all analysis by default in the documentation generation process.
Configuration menu - View commit details
-
Copy full SHA for 104bca5 - Browse repository at this point
Copy the full SHA 104bca5View commit details -
Update default value for Content and modify build properties
Modified the default value for the property 'Content' in the 'Message' class. Also updated the build properties by changing the 'AnalysisModeDocumentation' to "Default", disabling 'EnableTrimAnalyzer', and adding exception warning codes 'CS0162' and 'CS1591' to 'NoWarn'.
Configuration menu - View commit details
-
Copy full SHA for e59a837 - Browse repository at this point
Copy the full SHA e59a837View commit details -
Disable Azure Service Bus and initialize Customer fields
With this commit, the Azure Service Bus module usage has been turned off. In addition, the initial fields of the Customer entity have been set to their default values for safer initialization and to avoid potential null reference exceptions.
Configuration menu - View commit details
-
Copy full SHA for 2d480e6 - Browse repository at this point
Copy the full SHA 2d480e6View commit details -
Add distributed workflow services and configurations
Implemented basic functionalities in DistributedWorkflowClient and DistributedWorkflowRuntime. Updated Web Application 'Program.cs' to support different WorkflowRuntimes as per the configuration. Renamed WorkflowRuntimeFeature.cs to DistributedRuntimeFeature.cs and refactored the code accordingly. Removed unnecessary method 'UseDefaultWorkflowRuntime' from ModuleExtensions.cs.
Configuration menu - View commit details
-
Copy full SHA for 3398ede - Browse repository at this point
Copy the full SHA 3398edeView commit details
Commits on May 19, 2024
-
Refactor ReceivedServiceBusMessageModel from record to class
Converted ReceivedServiceBusMessageModel from a record to a class and updated relevant initialization code. Change was implemented because of the polymorphic serialization incabability of dealing with $type properties with records.
Configuration menu - View commit details
-
Copy full SHA for faacc16 - Browse repository at this point
Copy the full SHA faacc16View commit details -
Refactor WorkflowInstanceImpl for improved workflow management
This change refactors the WorkflowInstanceImpl class to improve workflow management. It implements queuing of RunWorkflowOptions while a workflow is running and ensures state before any workflow operations. Furthermore, workflow host creation is replaced with directly creating and managing workflow instances.
Configuration menu - View commit details
-
Copy full SHA for f980e36 - Browse repository at this point
Copy the full SHA f980e36View commit details
Commits on May 20, 2024
-
Add DefaultFormattersFeature and update dependencies
A new feature, DefaultFormattersFeature, has been added to the Elsa.Common module. The WorkflowsFeature in the Elsa.Workflows.Core module has been updated to depend on this new feature. This will ensure that default JSON formatters are available across the application.
Configuration menu - View commit details
-
Copy full SHA for a0a4e63 - Browse repository at this point
Copy the full SHA a0a4e63View commit details -
Refactor JsonFormatter with JsonSerializerOptions property
Improved the JsonFormatter class by introducing a private JsonSerializerOptions property. The new implementation uses this property in the FromStringAsync method instead of initializing a new JsonSerializerOptions each time, improving efficiency. The JsonStringEnumConverter has also been moved to the class constructor.
Configuration menu - View commit details
-
Copy full SHA for 560d38d - Browse repository at this point
Copy the full SHA 560d38dView commit details -
Refactor WorkflowInstanceImpl for improved code clarity
The refactor includes replacing direct field access with properties in multiple places for WorkflowGraph and WorkflowState. It also makes _queuedRunWorkflowOptions field readonly and removes unnecessary newline characters. These changes aim to improve readability, maintainability and encapsulation.
Configuration menu - View commit details
-
Copy full SHA for 00bce1b - Browse repository at this point
Copy the full SHA 00bce1bView commit details
Commits on May 21, 2024
-
Add and update methods to workflow instances
This commit introduces add and update functionalities to the workflow instances across the application. Additionally, it includes enhancements to the workflow execution, such as distributed locking and expanded logging capabilities for better debugging and tracking. Lastly, it introduces new configurations in application settings to fine-tune the workflow runtime environment.
Configuration menu - View commit details
-
Copy full SHA for 6fb5bbd - Browse repository at this point
Copy the full SHA 6fb5bbdView commit details
Commits on May 22, 2024
-
Refactor worker management in AzureServiceBus module
The codebase has been simplified by removing the unnecessary management of worker ref counts in the AzureServiceBus module. Previously, to manage worker instances, we kept a count of references to each worker and removed it when the count dropped to zero. This complexity has been entirely removed to make the module simpler and easier to maintain. Now we just create a worker when necessary, without tracking its usage across the codebase.
Configuration menu - View commit details
-
Copy full SHA for 182c577 - Browse repository at this point
Copy the full SHA 182c577View commit details -
Configuration menu - View commit details
-
Copy full SHA for 16e8afc - Browse repository at this point
Copy the full SHA 16e8afcView commit details -
Refactor workflow runtime with distributed locking and state checking
The workflow runtime has been refactored for better concurrency control and state management. The changes primarily include the introduction of distributed locking in action methods of the DistributedWorkflowClient and the handling of workflow instance states in the LocalWorkflowClient. This entails changes to the logic in the RunInstanceAsync, CreateAndRunInstanceAsync, CancelAsync, ExportStateAsync and ImportStateAsync methods.
Configuration menu - View commit details
-
Copy full SHA for 6e91e33 - Browse repository at this point
Copy the full SHA 6e91e33View commit details -
Configuration menu - View commit details
-
Copy full SHA for f7e50e9 - Browse repository at this point
Copy the full SHA f7e50e9View commit details -
Refactor DispatchWorkflowInstance in MassTransitWorkflowDispatcher
The DispatchWorkflowInstance model in the MassTransitWorkflowDispatcher has been refactored. Previous detailed activity parameters (ActivityId, ActivityNodeId, ActivityInstanceId, ActivityHash) were replaced with a single ActivityHandle property. An additional Properties field was added.
Configuration menu - View commit details
-
Copy full SHA for 6b80ca7 - Browse repository at this point
Copy the full SHA 6b80ca7View commit details -
Update test in BulkDispatchWorkflowsTests
The DispatchAndWaitWorkflow test case in the BulkDispatchWorkflowsTests has been updated to use the new workflow client creation and instance running methods. Necessary namespace imports have also been added in the process to support the changes.
Configuration menu - View commit details
-
Copy full SHA for 529f054 - Browse repository at this point
Copy the full SHA 529f054View commit details -
Remove snapshot and persistence functionality from WorkflowInstanceImpl
This commit eliminates snapshot creation and persistence from the WorkflowInstanceImpl class. Methods related to these processes have been removed, including SaveSnapshotAsync(), ApplySnapshot(), and GetState(). This has also impacted the constructor and OnStarted() method where certain calls were made related to persistence. The need to manage and recover state asynchronously was eliminated, simplifying the implementation.
Configuration menu - View commit details
-
Copy full SHA for bae2928 - Browse repository at this point
Copy the full SHA bae2928View commit details -
Refactor workflow client implementations and update WorkflowStateMapper
Workflow clients in the modules Elsa.Workflows.Runtime and Elsa.ProtoActor have been refactored for better maintainability and readability. The WorkflowStateMapper in the Elsa.Workflows.Management is updated to include an "Apply" method, splitting the mapping functionality into smaller, more manageable methods. Also, usage of the Azure Service Bus Module in Elsa.Server.Web has been turned off.
Configuration menu - View commit details
-
Copy full SHA for 5f0092d - Browse repository at this point
Copy the full SHA 5f0092dView commit details -
Update BulkDispatchWorkflowsTests specification
This commit updates the test specification in BulkDispatchWorkflowsTests by removing an unnecessary import and updating the WorkflowDefinitionHandle in the DispatchAndWaitWorkflow test method. Also, superfluous comments have been removed for readability.
Configuration menu - View commit details
-
Copy full SHA for 0defe82 - Browse repository at this point
Copy the full SHA 0defe82View commit details -
Update workflow definition in BulkDispatchWorkflowsTests
Changed the referenced workflow definition in the test scenario from EmployeeGreetingWorkflow to GreetEmployeesWorkflow. This update reflects more precise naming in our component tests for the BulkDispatchWorkflows scenario.
Configuration menu - View commit details
-
Copy full SHA for 183250d - Browse repository at this point
Copy the full SHA 183250dView commit details -
Refactor BulkDispatchWorkflows and simplify error handling
The BulkDispatchWorkflows class in Elsa Workflows Runtime module has been refactored to simplify it. The detailed error handling with a list of errors has been removed and it is now directly dispatching child workflows without checking for a successful dispatch. The ProcessItem method has been removed which handled the errors previously, and the DispatchChildWorkflowAsync method no longer returns a dispatch response. This substantially simplifies the code and reduces its complexity.
Configuration menu - View commit details
-
Copy full SHA for 80504f1 - Browse repository at this point
Copy the full SHA 80504f1View commit details -
Update workflow runtime and distributed locking configuration settings
In the web server settings, the workflow runtime was changed from 'Distributed' to 'ProtoActor'. Also, the distributed lock provider setting has been moved into a new 'DistributedLocking' section in the configuration settings, allowing more detailed lock options to be set, including a lock acquisition timeout.
Configuration menu - View commit details
-
Copy full SHA for 0ad863d - Browse repository at this point
Copy the full SHA 0ad863dView commit details -
Replace ProtoActor with DistributedRuntime in WorkflowServer
The current commit modifies our WorkflowServer configuration under our component tests. The "UseProtoActor" method which was previously used for runtime configuration has been commented out and replaced with "UseDistributedRuntime". This change suggests a shift towards a distributed runtime environment.
Configuration menu - View commit details
-
Copy full SHA for c64a6c6 - Browse repository at this point
Copy the full SHA c64a6c6View commit details
Commits on May 24, 2024
-
Add new services and classes for workflow messaging
This commit adds new classes and services to facilitate workflow messaging. These include 'BroadcastWorkflowInboxMessageOptions', 'IWorkflowInbox', 'NewWorkflowInboxMessage', 'SubmitWorkflowInboxMessageResult', 'WorkflowInboxMessage', 'WorkflowInboxMessageDeliveryParams', and 'WorkflowInboxMessageFilter'. Additionally, changes were made in 'HttpWorkflowsMiddleware.cs' and 'WorkflowRuntimeFeature.cs' to use 'IWorkflowRunner' for executing workflows, and deprecated 'IWorkflowHostFactory' and 'WorkflowInvoker'. The messaging-related classes provide methods and properties to manage and manipulate workflow messages, delivery options and results. 'IWorkflowInbox' provides an interface for delivering messages to workflow instances while 'IWorkflowRunner' fulfills running workflows.
Configuration menu - View commit details
-
Copy full SHA for 99dc2d4 - Browse repository at this point
Copy the full SHA 99dc2d4View commit details -
Refactor WorkflowCancellationService for cleaner syntax
Aesthetic adjustments were made to the WorkflowCancellationService code to improve readability and maintainability. This includes tidying up line breaks, reformatting lists, correcting spelling in comments, and consolidating parameters in a function call.
Configuration menu - View commit details
-
Copy full SHA for fd80c6f - Browse repository at this point
Copy the full SHA fd80c6fView commit details -
Remove unused import in MassTransitWorkflowCancellationDispatcher
The 'Elsa.Workflows.Runtime.Contracts' namespace was removed from the MassTransitWorkflowCancellationDispatcher file because it was not being utilized. This ensures a clean and efficient codebase by removing unnecessary imports.
Configuration menu - View commit details
-
Copy full SHA for 36273a9 - Browse repository at this point
Copy the full SHA 36273a9View commit details -
Remove Class1 from Elsa.Testing.Shared.Component
This commit deletes Class1.cs as it was no longer serving any purpose in the Elsa.Testing.Shared.Component. This removal helps keep the codebase clean and maintainable.
Configuration menu - View commit details
-
Copy full SHA for d435839 - Browse repository at this point
Copy the full SHA d435839View commit details -
Reduce default timeout in ISignalManager interface
The default millisecond timeout for the WaitAsync functions in the ISignalManager interface has been reduced from 5000ms to 1000ms. This change will speed up signal wait times in our testing framework.
Configuration menu - View commit details
-
Copy full SHA for d9aaad9 - Browse repository at this point
Copy the full SHA d9aaad9View commit details -
Refactor syntax representation in SendMessage activity
Simplified the syntax representation in the SendMesssage activity in the Elsa Azure Service Bus module. The SupportedSyntaxes property now utilizes a more concise array initialization.
Configuration menu - View commit details
-
Copy full SHA for 53e4148 - Browse repository at this point
Copy the full SHA 53e4148View commit details -
Removed obsolete 'Stimulus' property and adjusted consumers
The 'Stimulus' property in DispatchResumeWorkflows and DispatchTriggerWorkflowsRequest classes has been removed as it was marked obsolete. The DispatchWorkflowRequestConsumer has been adjusted to only use the 'BookmarkPayload' property. This ensures a cleaner code base and removes potential confusion between the properties.
Configuration menu - View commit details
-
Copy full SHA for 111dbcf - Browse repository at this point
Copy the full SHA 111dbcfView commit details -
Rename GetNamedWorkflowGrain to GetNamedWorkflowInstanceClient
The method name GetNamedWorkflowGrain in both ProtoActorWorkflowClient and ClusterExtensions has been renamed to GetNamedWorkflowInstanceClient to improve code clarity. This change provides better semantics of what the function is purposed for.
Configuration menu - View commit details
-
Copy full SHA for fbc76b1 - Browse repository at this point
Copy the full SHA fbc76b1View commit details -
Remove unused snapshot classes
The commit removes the WorkflowGrainSnapshot and WorkflowInstanceGrainSnapshot classes from the Elsa.ProtoActor module. These classes were part of an older architecture and are no longer required.
Configuration menu - View commit details
-
Copy full SHA for 9d74dc1 - Browse repository at this point
Copy the full SHA 9d74dc1View commit details
Commits on May 25, 2024
-
Remove unused field from Azure ServiceBus Worker
The _refCount field in the Worker class from the Azure ServiceBus module was unused. To maintain a clean codebase and improve readability, this field has been removed.
Configuration menu - View commit details
-
Copy full SHA for 5433145 - Browse repository at this point
Copy the full SHA 5433145View commit details -
Remove WorkflowInboxMessageRecord from Elsa.Dapper module
The commit includes the deletion of the entire WorkflowInboxMessageRecord class from Elsa.Dapper module. This file was managing various activities related to the workflow inbox messages, such as delivering messages to a workflow instance.
Configuration menu - View commit details
-
Copy full SHA for dfde9f6 - Browse repository at this point
Copy the full SHA dfde9f6View commit details -
Add new V3_2 migrations for all database providers
This commit introduces new V3_2 migrations for MySQL, SQLite, PostgreSQL, and SQLServer database providers. Included are `Up` and `Down` migrations, the corresponding Designer files, and specific Alterations and Runtime changes. SqlDbType specifications were also added for each.
Configuration menu - View commit details
-
Copy full SHA for 7572c7b - Browse repository at this point
Copy the full SHA 7572c7bView commit details
Commits on May 27, 2024
-
Configuration menu - View commit details
-
Copy full SHA for acd7564 - Browse repository at this point
Copy the full SHA acd7564View commit details -
Refactor WorkflowDefinitionFilter and update related modules
Empty lines were removed between property declarations to improve readability in WorkflowDefinitionFilter. An error where 'filter.IsReadonly' was used instead of 'IsReadonly' was also corrected to ensure proper functionality. Additionally, WorkflowDefinitionFilter was imported in the Delete and Revert endpoint modules of the Elsa.Workflow.Api class to maintain consistency across the codebase.
Configuration menu - View commit details
-
Copy full SHA for d4fd715 - Browse repository at this point
Copy the full SHA d4fd715View commit details -
Change MongoUserStore to non-abstract class
The MongoUserStore class was previously tagged as an abstract class in the Identity module of Elsa.MongoDb. This update changes the MongoUserStore class from an abstract to a non-abstract (concrete) class to enable direct instantiation.
Configuration menu - View commit details
-
Copy full SHA for d85555c - Browse repository at this point
Copy the full SHA d85555cView commit details -
Add ForwardedType attribute and update bookmarks
This commit introduces a new `ForwardedType` attribute to aid in forwarding types to new types when deserializing JSON. Additionally, the existing bookmarks related to workflow runtime activities have been updated. These changes also require modifying the `PolymorphicSerializer` in the Elsa.MongoDb project to handle types using the new `TypeHelper.GetLatestType` method.
Configuration menu - View commit details
-
Copy full SHA for e92d48a - Browse repository at this point
Copy the full SHA e92d48aView commit details -
Configuration menu - View commit details
-
Copy full SHA for bd5b7f4 - Browse repository at this point
Copy the full SHA bd5b7f4View commit details -
Configuration menu - View commit details
-
Copy full SHA for c1cd1aa - Browse repository at this point
Copy the full SHA c1cd1aaView commit details
Commits on May 29, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 4bfa7cf - Browse repository at this point
Copy the full SHA 4bfa7cfView commit details
Commits on Jun 5, 2024
-
Configuration menu - View commit details
-
Copy full SHA for b4bd725 - Browse repository at this point
Copy the full SHA b4bd725View commit details -
Fix logger reference in exception handling
The logger reference used in the catch block of the DefaultTriggerScheduler.cs file was incorrect. This commit corrects it by using the appropriate logger variable for logging any potential cron expression format errors.
Configuration menu - View commit details
-
Copy full SHA for f365b05 - Browse repository at this point
Copy the full SHA f365b05View commit details
Commits on Jun 10, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 34c4daf - Browse repository at this point
Copy the full SHA 34c4dafView commit details -
Refactor component tests and improve code cleanliness
This commit refactor the component tests, introduced new interfaces and events related to workflow definition and trigger change token signals. Removed an unused file, DictionaryExtensions.cs and refactored the GetOrAdd method to better handle null values. Some minor changes and improvements were also made in existing files to enhance overall code cleanliness.
Configuration menu - View commit details
-
Copy full SHA for 61e0556 - Browse repository at this point
Copy the full SHA 61e0556View commit details -
Configuration menu - View commit details
-
Copy full SHA for 62ea932 - Browse repository at this point
Copy the full SHA 62ea932View commit details