Commit graph

716 commits

Author SHA1 Message Date
Sipke Schoorstra 757a2f566f Refactor activity state serialization to support property types typed as object 2021-06-07 22:04:36 +02:00
Sipke Schoorstra ea40ad1121 More correlation fixes 2021-06-07 15:21:36 +02:00
Sipke Schoorstra 26bf218da6 Fix WorkflowLaunchpad correlation locking
This fixes an issue where there was a brief moment of opportunity for callers to create duplicate workflow instances.
It also fixes duplicate workflow instances by not only querying for suspended workflows, but any other "unfinished" state workflows
2021-06-07 13:11:47 +02:00
Sipke Schoorstra 24e378ebfc Add State activity to model finite state machines 2021-06-06 20:21:58 +02:00
Sipke Schoorstra d9b7225da7 Add Type converter to activity state serializer 2021-06-05 15:33:33 +02:00
Sipke Schoorstra 2d12b5c516 Fix distributed deadlock 2021-06-05 12:59:18 +02:00
Sipke Schoorstra 0552d89f19 Ensure activity property values are restored from activity state before executing/resuming 2021-06-05 12:59:04 +02:00
Sipke Schoorstra ec172d98c1 Remove activity state from execution log to prevent large record sizes 2021-06-05 12:58:30 +02:00
Sipke Schoorstra 51a7b0f050 Add helper methods for accessing stored activity property values from activity state 2021-06-05 12:58:06 +02:00
Sipke Schoorstra 804eb27a2b Reconsider activity output 2021-06-05 12:57:01 +02:00
Sipke Schoorstra 97df3b7bc7 Acquire lock on correlation ID when dispatching new workflows
This fixes a race condition between initial workflow execution that e.g. sends a message to a topic, which is then handled by the same workflow later on.
But if that message is delivered too soon (before the workflow got persisted & indexed), then the message consumer won't be able to find the workflow.

Acquiring a lock on the correlation ID fixes this by synchronizing access to that resource
2021-06-03 14:02:07 +02:00
Sipke Schoorstra 44d756241a Remove redundant locking 2021-06-02 14:14:45 +02:00
Sipke Schoorstra cdaa105f3e Cleanup + comments 2021-06-02 14:00:56 +02:00
Sipke Schoorstra 93e80b5248 Fix race condition between finding bookmarks and indexing workflows 2021-06-02 13:54:39 +02:00
Sipke Schoorstra b6f165cc95 Turning some Telnyx activities into "jobs" (blocking actions) 2021-06-01 22:27:14 +02:00
Sipke Schoorstra 05c7973057 Fix that property setters have access to ambient activity execution
This is necessary for composite components
2021-05-31 19:51:56 +02:00
Sipke Schoorstra 79131e2dde Introduce NonPersistableAttribute to control what gets persisted in state 2021-05-31 19:50:42 +02:00
Sipke Schoorstra df8d85f183 Update ActivityPropertyUIHintResolver to use renamed ActivityInputUIHints 2021-05-31 10:18:22 +02:00
Sipke Schoorstra 23a47b30b2 Add Task activity and provider 2021-05-31 10:01:33 +02:00
Sipke Schoorstra 3d623b94e1 Improve bookmarking API and add Event Received activity 2021-05-31 10:01:33 +02:00
Sipke Schoorstra 589cab520b Add Conductor project and SendCommand activity 2021-05-31 10:01:33 +02:00
Sipke Schoorstra 0f8a0e9f3d Implement support for activity property ordering
Closes #884
2021-05-30 13:51:14 +02:00
Sipke Schoorstra 16c93e15c5 Add support for dynamic outcome provider
Fixes #873
2021-05-30 13:27:42 +02:00
Sipke Schoorstra d033b56d29 Increase javascript intellisense coverage 2021-05-30 12:51:58 +02:00
Sipke Schoorstra 58af0c7ca0 Rename ActivityPropertyAttribute to ActivityInputAttribute 2021-05-30 12:51:58 +02:00
Sipke Schoorstra 68e5be0159 Fix issue with SwitchHandler and Switch display on workflow blueprint viewer when using expressions that cannot be evaluated 2021-05-28 20:21:45 +02:00
Sipke Schoorstra 2b77ac8fe0 Handle potential null dictionary 2021-05-28 16:38:59 +02:00
Sipke Schoorstra 4932dbec2a Update activity property evaluation to store computed value as part of workflow instance state
This allows bookmarking to be optimized and fixes the issue when the system needs to access an activity's property from a workflow isntance without having to re-evaluate the property value provider which may be impossible to do since there is no context.
A potential downside is increased workflow instance size, but this needs to be resolved as part of #898
2021-05-28 13:07:44 +02:00
Sipke Schoorstra 3f4bbed7b6 Update XML comments on VersionOptions 2021-05-25 13:34:53 +02:00
Sipke Schoorstra 0b10faad92 Add DataProtection default service and update broken samples 2021-05-25 12:12:36 +02:00
Sipke Schoorstra bb4ff3b714 Update packages 2021-05-25 09:57:17 +02:00
Sipke Schoorstra 326e373491 Change log level severity 2021-05-24 14:32:30 +02:00
Sipke Schoorstra 030634643c WIP 2021-05-24 11:25:42 +02:00
Sipke Schoorstra 7814be98b3 Remove unused namespaces 2021-05-23 20:38:12 +02:00
Sipke Schoorstra a79e065ee4 Fix that workflow registry is updated also after deleting workflow definitions 2021-05-23 20:33:58 +02:00
Sipke Schoorstra b5453b23a2 Add support for pub-sub consumers and implement Rebus distributed cache signaling 2021-05-22 14:11:35 +02:00
Sipke Schoorstra 01839b19e5 Fix race condition with bookmark querying and updating
Fixes #965
2021-05-21 21:39:16 +02:00
Sipke Schoorstra e51e743d78 Fix workflow instance locking 2021-05-21 14:15:18 +02:00
Sipke Schoorstra 77dbbad3ca Further workflow journal & workflow instance viewer improvements 2021-05-20 20:57:39 +02:00
Sipke Schoorstra c8a0bb32ab Further journal enhancements
#1016
2021-05-20 19:04:55 +02:00
Sipke Schoorstra 6d12ec61c1 Do not return unnecessary Done outcome in case of explicitly defined outcomes
Fixes #1018
2021-05-20 15:04:18 +02:00
Sipke Schoorstra 007e28fb47 Workflow viewer improvements 2021-05-20 11:05:52 +02:00
Sipke Schoorstra e724d6030a Incremental work on workflow journal UI 2021-05-20 11:05:52 +02:00
Sipke Schoorstra f80c0e1716 Implement signals dispatch & execute endpoints 2021-05-19 13:34:32 +02:00
Sipke Schoorstra e4f4375520 Implement workflow trigger dispatch & execute endpoints 2021-05-19 13:34:32 +02:00
Sipke Schoorstra 911b933cd5 Implement Execute and Dispatch Workflow Instance endpoint 2021-05-19 13:34:32 +02:00
Sipke Schoorstra 9c2b57865e Implement Dispatch Workflow Definition endpoint 2021-05-19 13:34:32 +02:00
Sipke Schoorstra 62236e107e Implemented Execute Workflow Definition endpoint 2021-05-19 13:34:32 +02:00
Sipke Schoorstra 6bec7de843 Fix default value of Finish activity 2021-05-17 14:06:53 +02:00
Sipke Schoorstra 5495185eec Fix default activity property values 2021-05-17 13:12:11 +02:00