diff --git a/Directory.Packages.props b/Directory.Packages.props
index fd2fb305..7b0fb022 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -4,25 +4,30 @@
false
+
+
+
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -94,10 +99,10 @@
-
+
-
+
@@ -127,7 +132,7 @@
-
+
diff --git a/Elsa.Extensions.sln b/Elsa.Extensions.sln
index 11560104..4cc424b5 100644
--- a/Elsa.Extensions.sln
+++ b/Elsa.Extensions.sln
@@ -123,8 +123,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Alterations.MassTransi
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "caching", "caching", "{9732C4B1-3E94-4705-8CBE-1DC48F55C8EA}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Caching", "src\caching\Elsa.Caching\Elsa.Caching.csproj", "{21A93F3B-A799-39DA-EEBB-0D5E9B6F99A1}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Caching.Distributed", "src\caching\Elsa.Caching.Distributed\Elsa.Caching.Distributed.csproj", "{C568B847-15AB-C4DB-5675-0D5F400ED14D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Caching.Distributed.MassTransit", "src\caching\Elsa.Caching.Distributed.MassTransit\Elsa.Caching.Distributed.MassTransit.csproj", "{C4D65789-A62A-DAD5-7246-A0E476F86CDF}"
@@ -177,20 +175,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "actors", "actors", "{559A90
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Actors.ProtoActor", "src\actors\Elsa.Actors.ProtoActor\Elsa.Actors.ProtoActor.csproj", "{C2721BCB-2FB1-9227-AABB-ED768EB292FD}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scripting", "scripting", "{D836B806-4EE7-4B1E-AA85-919ACC4B060C}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Scripting.CSharp", "src\scripting\Elsa.Scripting.CSharp\Elsa.Scripting.CSharp.csproj", "{152CD9A2-099E-679F-9451-910266B37E5D}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Scripting.Dsl", "src\scripting\Elsa.Scripting.Dsl\Elsa.Scripting.Dsl.csproj", "{2EFC2C6C-72F0-9839-6453-C3F239C38758}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Scripting.JavaScript", "src\scripting\Elsa.Scripting.JavaScript\Elsa.Scripting.JavaScript.csproj", "{B210E4C3-C0DE-D338-8D4D-717F76C0D2CF}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Scripting.JavaScript.Libraries", "src\scripting\Elsa.Scripting.JavaScript.Libraries\Elsa.Scripting.JavaScript.Libraries.csproj", "{6DA083EC-9D83-A244-14FF-B0DADFFE4C81}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Scripting.Liquid", "src\scripting\Elsa.Scripting.Liquid\Elsa.Scripting.Liquid.csproj", "{C6AB11EF-F411-4427-E6A2-6E1ACE2DD1D3}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Scripting.Python", "src\scripting\Elsa.Scripting.Python\Elsa.Scripting.Python.csproj", "{65FCD3C0-1E47-CD9F-1B6B-0AA4EDAEE8B5}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "retention", "retention", "{0EB9AB19-0C85-4551-8347-F3D330614B47}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Retention", "src\retention\Elsa.Retention\Elsa.Retention.csproj", "{4C24646E-B017-9C72-5E5E-27EEE2F23D7B}"
@@ -205,8 +189,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scheduling", "scheduling",
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "http", "http", "{A130EEF5-7DF0-40CB-BD71-744716F0BCE7}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Http", "src\http\Elsa.Http\Elsa.Http.csproj", "{9ED51EEA-4277-1C89-BE0F-0F491A0AC637}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Http.Webhooks", "src\http\Elsa.Http.Webhooks\Elsa.Http.Webhooks.csproj", "{ABC40471-5A32-0AC0-594B-FF19B66E2493}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "email", "email", "{E0C43181-76BA-47C7-93CC-6CE0F577F14B}"
@@ -263,6 +245,18 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Studio.Http.Webhooks",
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Studio.WorkflowContexts", "src\workflows\Elsa.Studio.WorkflowContexts\Elsa.Studio.WorkflowContexts.csproj", "{E6BD7D7F-3CC5-EE66-577D-19015EFD03D8}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "runtimes", "runtimes", "{7D32914F-1D75-4E01-A0D1-BBF67789A0E5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Workflows.Runtime.Distributed", "src\runtimes\Elsa.Workflows.Runtime.Distributed\Elsa.Workflows.Runtime.Distributed.csproj", "{55488191-7EF9-A480-6C1F-F1301DCC0EC0}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Workflows.Runtime.ProtoActor", "src\runtimes\Elsa.Workflows.Runtime.ProtoActor\Elsa.Workflows.Runtime.ProtoActor.csproj", "{159E73C1-60F9-0D39-9CA1-79EC99187FDC}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "integration", "integration", "{E3AF86CC-B571-40A2-B44F-F48B17EB9325}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Alterations.IntegrationTests", "test\integrations\Elsa.Alterations.IntegrationTests\Elsa.Alterations.IntegrationTests.csproj", "{1DA73581-F279-95FC-9485-B73D8A9FC727}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.MongoDb.UnitTests", "test\unit\Elsa.MongoDb.UnitTests\Elsa.MongoDb.UnitTests.csproj", "{59C29BC8-ED95-8F0B-323E-A988EADF3D38}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -393,10 +387,6 @@ Global
{95C8EFEE-9396-F334-9B76-78322650A0C6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{95C8EFEE-9396-F334-9B76-78322650A0C6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{95C8EFEE-9396-F334-9B76-78322650A0C6}.Release|Any CPU.Build.0 = Release|Any CPU
- {21A93F3B-A799-39DA-EEBB-0D5E9B6F99A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {21A93F3B-A799-39DA-EEBB-0D5E9B6F99A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {21A93F3B-A799-39DA-EEBB-0D5E9B6F99A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {21A93F3B-A799-39DA-EEBB-0D5E9B6F99A1}.Release|Any CPU.Build.0 = Release|Any CPU
{C568B847-15AB-C4DB-5675-0D5F400ED14D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C568B847-15AB-C4DB-5675-0D5F400ED14D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C568B847-15AB-C4DB-5675-0D5F400ED14D}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -489,30 +479,6 @@ Global
{C2721BCB-2FB1-9227-AABB-ED768EB292FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C2721BCB-2FB1-9227-AABB-ED768EB292FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C2721BCB-2FB1-9227-AABB-ED768EB292FD}.Release|Any CPU.Build.0 = Release|Any CPU
- {152CD9A2-099E-679F-9451-910266B37E5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {152CD9A2-099E-679F-9451-910266B37E5D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {152CD9A2-099E-679F-9451-910266B37E5D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {152CD9A2-099E-679F-9451-910266B37E5D}.Release|Any CPU.Build.0 = Release|Any CPU
- {2EFC2C6C-72F0-9839-6453-C3F239C38758}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2EFC2C6C-72F0-9839-6453-C3F239C38758}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2EFC2C6C-72F0-9839-6453-C3F239C38758}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2EFC2C6C-72F0-9839-6453-C3F239C38758}.Release|Any CPU.Build.0 = Release|Any CPU
- {B210E4C3-C0DE-D338-8D4D-717F76C0D2CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B210E4C3-C0DE-D338-8D4D-717F76C0D2CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B210E4C3-C0DE-D338-8D4D-717F76C0D2CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B210E4C3-C0DE-D338-8D4D-717F76C0D2CF}.Release|Any CPU.Build.0 = Release|Any CPU
- {6DA083EC-9D83-A244-14FF-B0DADFFE4C81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6DA083EC-9D83-A244-14FF-B0DADFFE4C81}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6DA083EC-9D83-A244-14FF-B0DADFFE4C81}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6DA083EC-9D83-A244-14FF-B0DADFFE4C81}.Release|Any CPU.Build.0 = Release|Any CPU
- {C6AB11EF-F411-4427-E6A2-6E1ACE2DD1D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C6AB11EF-F411-4427-E6A2-6E1ACE2DD1D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C6AB11EF-F411-4427-E6A2-6E1ACE2DD1D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C6AB11EF-F411-4427-E6A2-6E1ACE2DD1D3}.Release|Any CPU.Build.0 = Release|Any CPU
- {65FCD3C0-1E47-CD9F-1B6B-0AA4EDAEE8B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {65FCD3C0-1E47-CD9F-1B6B-0AA4EDAEE8B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {65FCD3C0-1E47-CD9F-1B6B-0AA4EDAEE8B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {65FCD3C0-1E47-CD9F-1B6B-0AA4EDAEE8B5}.Release|Any CPU.Build.0 = Release|Any CPU
{4C24646E-B017-9C72-5E5E-27EEE2F23D7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4C24646E-B017-9C72-5E5E-27EEE2F23D7B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4C24646E-B017-9C72-5E5E-27EEE2F23D7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -525,10 +491,6 @@ Global
{0CA52158-CBB6-74FC-B63F-812E059053A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0CA52158-CBB6-74FC-B63F-812E059053A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0CA52158-CBB6-74FC-B63F-812E059053A4}.Release|Any CPU.Build.0 = Release|Any CPU
- {9ED51EEA-4277-1C89-BE0F-0F491A0AC637}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9ED51EEA-4277-1C89-BE0F-0F491A0AC637}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9ED51EEA-4277-1C89-BE0F-0F491A0AC637}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9ED51EEA-4277-1C89-BE0F-0F491A0AC637}.Release|Any CPU.Build.0 = Release|Any CPU
{ABC40471-5A32-0AC0-594B-FF19B66E2493}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ABC40471-5A32-0AC0-594B-FF19B66E2493}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ABC40471-5A32-0AC0-594B-FF19B66E2493}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -625,6 +587,22 @@ Global
{E6BD7D7F-3CC5-EE66-577D-19015EFD03D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E6BD7D7F-3CC5-EE66-577D-19015EFD03D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E6BD7D7F-3CC5-EE66-577D-19015EFD03D8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {55488191-7EF9-A480-6C1F-F1301DCC0EC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {55488191-7EF9-A480-6C1F-F1301DCC0EC0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {55488191-7EF9-A480-6C1F-F1301DCC0EC0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {55488191-7EF9-A480-6C1F-F1301DCC0EC0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {159E73C1-60F9-0D39-9CA1-79EC99187FDC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {159E73C1-60F9-0D39-9CA1-79EC99187FDC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {159E73C1-60F9-0D39-9CA1-79EC99187FDC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {159E73C1-60F9-0D39-9CA1-79EC99187FDC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1DA73581-F279-95FC-9485-B73D8A9FC727}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1DA73581-F279-95FC-9485-B73D8A9FC727}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1DA73581-F279-95FC-9485-B73D8A9FC727}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1DA73581-F279-95FC-9485-B73D8A9FC727}.Release|Any CPU.Build.0 = Release|Any CPU
+ {59C29BC8-ED95-8F0B-323E-A988EADF3D38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {59C29BC8-ED95-8F0B-323E-A988EADF3D38}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {59C29BC8-ED95-8F0B-323E-A988EADF3D38}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {59C29BC8-ED95-8F0B-323E-A988EADF3D38}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -672,7 +650,6 @@ Global
{492E9E6D-403E-E473-F3CC-4CEBA57448FF} = {F670C86F-ACDA-4549-B9E1-E530B1ED5538}
{95C8EFEE-9396-F334-9B76-78322650A0C6} = {F670C86F-ACDA-4549-B9E1-E530B1ED5538}
{9732C4B1-3E94-4705-8CBE-1DC48F55C8EA} = {527248D6-B851-4C8D-8667-E2FB0A91DABF}
- {21A93F3B-A799-39DA-EEBB-0D5E9B6F99A1} = {9732C4B1-3E94-4705-8CBE-1DC48F55C8EA}
{C568B847-15AB-C4DB-5675-0D5F400ED14D} = {9732C4B1-3E94-4705-8CBE-1DC48F55C8EA}
{C4D65789-A62A-DAD5-7246-A0E476F86CDF} = {9732C4B1-3E94-4705-8CBE-1DC48F55C8EA}
{F5B2629A-E0C9-9B73-4941-DD44DD557A9B} = {9732C4B1-3E94-4705-8CBE-1DC48F55C8EA}
@@ -699,13 +676,6 @@ Global
{FE487F94-5242-C0C7-884A-3EE8FB8FC24E} = {45B793EC-7BFF-45C0-BD0E-2D1601C8D01E}
{559A9049-76C1-421C-9295-32ED7438D52E} = {527248D6-B851-4C8D-8667-E2FB0A91DABF}
{C2721BCB-2FB1-9227-AABB-ED768EB292FD} = {559A9049-76C1-421C-9295-32ED7438D52E}
- {D836B806-4EE7-4B1E-AA85-919ACC4B060C} = {527248D6-B851-4C8D-8667-E2FB0A91DABF}
- {152CD9A2-099E-679F-9451-910266B37E5D} = {D836B806-4EE7-4B1E-AA85-919ACC4B060C}
- {2EFC2C6C-72F0-9839-6453-C3F239C38758} = {D836B806-4EE7-4B1E-AA85-919ACC4B060C}
- {B210E4C3-C0DE-D338-8D4D-717F76C0D2CF} = {D836B806-4EE7-4B1E-AA85-919ACC4B060C}
- {6DA083EC-9D83-A244-14FF-B0DADFFE4C81} = {D836B806-4EE7-4B1E-AA85-919ACC4B060C}
- {C6AB11EF-F411-4427-E6A2-6E1ACE2DD1D3} = {D836B806-4EE7-4B1E-AA85-919ACC4B060C}
- {65FCD3C0-1E47-CD9F-1B6B-0AA4EDAEE8B5} = {D836B806-4EE7-4B1E-AA85-919ACC4B060C}
{0EB9AB19-0C85-4551-8347-F3D330614B47} = {527248D6-B851-4C8D-8667-E2FB0A91DABF}
{4C24646E-B017-9C72-5E5E-27EEE2F23D7B} = {0EB9AB19-0C85-4551-8347-F3D330614B47}
{A0EEAF46-1B46-4C7D-A7E4-863814F87C4B} = {527248D6-B851-4C8D-8667-E2FB0A91DABF}
@@ -713,7 +683,6 @@ Global
{0CA52158-CBB6-74FC-B63F-812E059053A4} = {A0EEAF46-1B46-4C7D-A7E4-863814F87C4B}
{EB873525-AE02-4406-AC78-5996DE781573} = {527248D6-B851-4C8D-8667-E2FB0A91DABF}
{A130EEF5-7DF0-40CB-BD71-744716F0BCE7} = {527248D6-B851-4C8D-8667-E2FB0A91DABF}
- {9ED51EEA-4277-1C89-BE0F-0F491A0AC637} = {A130EEF5-7DF0-40CB-BD71-744716F0BCE7}
{ABC40471-5A32-0AC0-594B-FF19B66E2493} = {A130EEF5-7DF0-40CB-BD71-744716F0BCE7}
{E0C43181-76BA-47C7-93CC-6CE0F577F14B} = {527248D6-B851-4C8D-8667-E2FB0A91DABF}
{719BCAE9-BF9C-75D9-E551-782D6FD6421C} = {E0C43181-76BA-47C7-93CC-6CE0F577F14B}
@@ -742,6 +711,12 @@ Global
{C818B0E4-6019-3E0C-EE4C-17248430319E} = {BF696EF4-FEAE-4008-A788-369437420259}
{D29C4DFC-A392-7DFA-C85D-01827CD4A360} = {A130EEF5-7DF0-40CB-BD71-744716F0BCE7}
{E6BD7D7F-3CC5-EE66-577D-19015EFD03D8} = {04265302-AF6B-4627-807C-DE9E1699D7C9}
+ {7D32914F-1D75-4E01-A0D1-BBF67789A0E5} = {527248D6-B851-4C8D-8667-E2FB0A91DABF}
+ {55488191-7EF9-A480-6C1F-F1301DCC0EC0} = {7D32914F-1D75-4E01-A0D1-BBF67789A0E5}
+ {159E73C1-60F9-0D39-9CA1-79EC99187FDC} = {7D32914F-1D75-4E01-A0D1-BBF67789A0E5}
+ {E3AF86CC-B571-40A2-B44F-F48B17EB9325} = {A99FA26E-2098-403A-BD04-6BBCFBE3AC7D}
+ {1DA73581-F279-95FC-9485-B73D8A9FC727} = {E3AF86CC-B571-40A2-B44F-F48B17EB9325}
+ {59C29BC8-ED95-8F0B-323E-A988EADF3D38} = {AF041BAE-B45A-428B-B7F5-921CCB895558}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {11A771DA-B728-445E-8A88-AE1C84C3B3A6}
diff --git a/src/caching/Elsa.Caching.Distributed/Elsa.Caching.Distributed.csproj b/src/caching/Elsa.Caching.Distributed/Elsa.Caching.Distributed.csproj
index 0a076dfb..f2ff5db6 100644
--- a/src/caching/Elsa.Caching.Distributed/Elsa.Caching.Distributed.csproj
+++ b/src/caching/Elsa.Caching.Distributed/Elsa.Caching.Distributed.csproj
@@ -6,9 +6,9 @@
elsa extension module caching distributed
-
-
-
-
-
+
+
+
+
+
diff --git a/src/caching/Elsa.Caching/Contracts/ICacheManager.cs b/src/caching/Elsa.Caching/Contracts/ICacheManager.cs
deleted file mode 100644
index 6e93fe8c..00000000
--- a/src/caching/Elsa.Caching/Contracts/ICacheManager.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using Elsa.Caching.Options;
-using Microsoft.Extensions.Caching.Memory;
-using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Primitives;
-
-namespace Elsa.Caching;
-
-///
-/// A thin wrapper around , allowing for centralized handling of cache entries.
-///
-public interface ICacheManager
-{
- ///
- /// Provides options for configuring caching.
- ///
- IOptions CachingOptions { get; }
-
- ///
- /// Gets a change token for the specified key.
- ///
- IChangeToken GetToken(string key);
-
- ///
- /// Triggers the change token for the specified key.
- ///
- ValueTask TriggerTokenAsync(string key, CancellationToken cancellationToken = default);
-
- ///
- /// Gets an item from the cache, or creates it if it doesn't exist.
- ///
- Task GetOrCreateAsync(object key, Func> factory);
-}
\ No newline at end of file
diff --git a/src/caching/Elsa.Caching/Contracts/IChangeTokenSignalInvoker.cs b/src/caching/Elsa.Caching/Contracts/IChangeTokenSignalInvoker.cs
deleted file mode 100644
index 700da3d9..00000000
--- a/src/caching/Elsa.Caching/Contracts/IChangeTokenSignalInvoker.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using Microsoft.Extensions.Primitives;
-
-namespace Elsa.Caching;
-
-///
-/// Triggers the change token associated with the specified key.
-///
-public interface IChangeTokenSignalInvoker
-{
- ///
- /// Gets a change token for the specified key.
- ///
- IChangeToken GetToken(string key);
-
- ///
- /// Triggers the change token for the specified key.
- ///
- ValueTask TriggerTokenAsync(string key, CancellationToken cancellationToken = default);
-}
\ No newline at end of file
diff --git a/src/caching/Elsa.Caching/Contracts/IChangeTokenSignaler.cs b/src/caching/Elsa.Caching/Contracts/IChangeTokenSignaler.cs
deleted file mode 100644
index f937e2b6..00000000
--- a/src/caching/Elsa.Caching/Contracts/IChangeTokenSignaler.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using Microsoft.Extensions.Primitives;
-
-namespace Elsa.Caching;
-
-///
-/// Provides change tokens for memory caches, allowing code to evict cache entries by triggering a signal.
-///
-public interface IChangeTokenSignaler
-{
- ///
- /// Gets a change token for the specified key.
- ///
- IChangeToken GetToken(string key);
-
- ///
- /// Triggers the change token for the specified key.
- ///
- ValueTask TriggerTokenAsync(string key, CancellationToken cancellationToken = default);
-}
\ No newline at end of file
diff --git a/src/caching/Elsa.Caching/Elsa.Caching.csproj b/src/caching/Elsa.Caching/Elsa.Caching.csproj
deleted file mode 100644
index 34fc253d..00000000
--- a/src/caching/Elsa.Caching/Elsa.Caching.csproj
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- Provides caching services and utility functions common to Elsa modules.
-
- elsa extension module caching
-
-
-
-
-
-
-
-
-
diff --git a/src/caching/Elsa.Caching/Elsa.Caching.csproj.DotSettings b/src/caching/Elsa.Caching/Elsa.Caching.csproj.DotSettings
deleted file mode 100644
index 127787e8..00000000
--- a/src/caching/Elsa.Caching/Elsa.Caching.csproj.DotSettings
+++ /dev/null
@@ -1,2 +0,0 @@
-
- True
\ No newline at end of file
diff --git a/src/caching/Elsa.Caching/Extensions/ModuleExtensions.cs b/src/caching/Elsa.Caching/Extensions/ModuleExtensions.cs
deleted file mode 100644
index 879f9c9b..00000000
--- a/src/caching/Elsa.Caching/Extensions/ModuleExtensions.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using Elsa.Caching.Features;
-using Elsa.Features.Services;
-
-// ReSharper disable once CheckNamespace
-namespace Elsa.Extensions;
-
-///
-/// Provides methods to install and configure the distributed caching feature.
-///
-public static class ModuleExtensions
-{
- ///
- /// Adds the feature to the system.
- ///
- public static MemoryCacheFeature UseMemoryCache(this IModule module, Action? configure = default)
- {
- return module.Configure(configure);
- }
-}
\ No newline at end of file
diff --git a/src/caching/Elsa.Caching/Features/MemoryCacheFeature.cs b/src/caching/Elsa.Caching/Features/MemoryCacheFeature.cs
deleted file mode 100644
index 1a3ad07c..00000000
--- a/src/caching/Elsa.Caching/Features/MemoryCacheFeature.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using Elsa.Caching.Options;
-using Elsa.Caching.Services;
-using Elsa.Features.Abstractions;
-using Elsa.Features.Services;
-using Microsoft.Extensions.DependencyInjection;
-
-namespace Elsa.Caching.Features;
-
-///
-/// Configures the MemoryCache.
-///
-public class MemoryCacheFeature(IModule module) : FeatureBase(module)
-{
- ///
- /// A delegate to configure the .
- ///
- public Action CachingOptions { get; set; } = _ => { };
-
- ///
- public override void Apply()
- {
- Services.Configure(CachingOptions);
-
- Services
- .AddMemoryCache()
- .AddSingleton()
- .AddSingleton()
- .AddSingleton()
- ;
- }
-}
\ No newline at end of file
diff --git a/src/caching/Elsa.Caching/Options/CachingOptions.cs b/src/caching/Elsa.Caching/Options/CachingOptions.cs
deleted file mode 100644
index 4b9b5dd0..00000000
--- a/src/caching/Elsa.Caching/Options/CachingOptions.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-namespace Elsa.Caching.Options;
-
-///
-/// Provides options for configuring caching.
-///
-public class CachingOptions
-{
- ///
- /// Gets or sets the duration for which cache entries are stored.
- ///
- public TimeSpan CacheDuration { get; set; } = TimeSpan.FromMinutes(1);
-}
\ No newline at end of file
diff --git a/src/caching/Elsa.Caching/Services/CacheManager.cs b/src/caching/Elsa.Caching/Services/CacheManager.cs
deleted file mode 100644
index 6db50132..00000000
--- a/src/caching/Elsa.Caching/Services/CacheManager.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using Elsa.Caching.Options;
-using Microsoft.Extensions.Caching.Memory;
-using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Primitives;
-
-namespace Elsa.Caching.Services;
-
-///
-public class CacheManager(IMemoryCache memoryCache, IChangeTokenSignaler changeTokenSignaler, IOptions options) : ICacheManager
-{
- ///
- public IOptions CachingOptions => options;
-
- ///
- public IChangeToken GetToken(string key)
- {
- return changeTokenSignaler.GetToken(key);
- }
-
- ///
- public ValueTask TriggerTokenAsync(string key, CancellationToken cancellationToken = default)
- {
- return changeTokenSignaler.TriggerTokenAsync(key, cancellationToken);
- }
-
- ///
- public async Task GetOrCreateAsync(object key, Func> factory)
- {
- return await memoryCache.GetOrCreateAsync(key, async entry => await factory(entry));
- }
-}
\ No newline at end of file
diff --git a/src/caching/Elsa.Caching/Services/ChangeTokenSignalInvoker.cs b/src/caching/Elsa.Caching/Services/ChangeTokenSignalInvoker.cs
deleted file mode 100644
index 1bffad12..00000000
--- a/src/caching/Elsa.Caching/Services/ChangeTokenSignalInvoker.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-using System.Collections.Concurrent;
-using Microsoft.Extensions.Primitives;
-
-namespace Elsa.Caching.Services;
-
-///
-public class ChangeTokenSignalInvoker : IChangeTokenSignalInvoker
-{
- private readonly ConcurrentDictionary _changeTokens = new();
-
- ///
- public IChangeToken GetToken(string key)
- {
- return _changeTokens.GetOrAdd(
- key,
- _ =>
- {
- var cancellationTokenSource = new CancellationTokenSource();
- var changeToken = new CancellationChangeToken(cancellationTokenSource.Token);
- return new ChangeTokenInfo(changeToken, cancellationTokenSource);
- }).ChangeToken;
- }
-
- ///
- public ValueTask TriggerTokenAsync(string key, CancellationToken cancellationToken = default)
- {
- if (_changeTokens.TryRemove(key, out var changeTokenInfo))
- changeTokenInfo.TokenSource.Cancel();
-
- return default;
- }
-
- private readonly struct ChangeTokenInfo(IChangeToken changeToken, CancellationTokenSource tokenSource)
- {
- public IChangeToken ChangeToken { get; } = changeToken;
- public CancellationTokenSource TokenSource { get; } = tokenSource;
- }
-}
\ No newline at end of file
diff --git a/src/caching/Elsa.Caching/Services/ChangeTokenSignaler.cs b/src/caching/Elsa.Caching/Services/ChangeTokenSignaler.cs
deleted file mode 100644
index 69d9f2fd..00000000
--- a/src/caching/Elsa.Caching/Services/ChangeTokenSignaler.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using Microsoft.Extensions.Primitives;
-
-namespace Elsa.Caching.Services;
-
-///
-public class ChangeTokenSignaler(IChangeTokenSignalInvoker invoker) : IChangeTokenSignaler
-{
- ///
- public IChangeToken GetToken(string key)
- {
- return invoker.GetToken(key);
- }
-
- ///
- public ValueTask TriggerTokenAsync(string key, CancellationToken cancellationToken = default)
- {
- return invoker.TriggerTokenAsync(key, cancellationToken);
- }
-}
\ No newline at end of file
diff --git a/src/http/Elsa.Http/Abstractions/DownloadableContentHandlerBase.cs b/src/http/Elsa.Http/Abstractions/DownloadableContentHandlerBase.cs
deleted file mode 100644
index 403f5682..00000000
--- a/src/http/Elsa.Http/Abstractions/DownloadableContentHandlerBase.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-using Elsa.Http.Contexts;
-
-namespace Elsa.Http.Abstractions;
-
-///
-/// Provides a base class for implementations.
-///
-public abstract class DownloadableContentHandlerBase : IDownloadableContentHandler
-{
- ///
- public virtual float Priority => 0;
-
- ///
- public abstract bool GetSupportsContent(object content);
-
- ///
- /// Returns a list of downloadables from the specified content.
- ///
- protected virtual IEnumerable>> GetDownloadablesAsync(DownloadableContext context)
- {
- return new[] { GetDownloadableAsync(context) };
- }
-
- ///
- /// Returns a downloadable from the specified content.
- ///
- protected virtual Func> GetDownloadableAsync(DownloadableContext context)
- {
- return () => ValueTask.FromResult(GetDownloadable(context));
- }
-
- ///
- /// Returns a downloadable from the specified content.
- ///
- /// This method is not implemented. The derived class must implement at least one of the GetDownloadable methods.
- protected virtual Downloadable GetDownloadable(DownloadableContext context)
- {
- throw new NotImplementedException();
- }
-
- IEnumerable>> IDownloadableContentHandler.GetDownloadablesAsync(DownloadableContext context)
- {
- return GetDownloadablesAsync(context);
- }
-}
\ No newline at end of file
diff --git a/src/http/Elsa.Http/Abstractions/HttpCorrelationIdSelectorBase.cs b/src/http/Elsa.Http/Abstractions/HttpCorrelationIdSelectorBase.cs
deleted file mode 100644
index 43b4b4dd..00000000
--- a/src/http/Elsa.Http/Abstractions/HttpCorrelationIdSelectorBase.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using Microsoft.AspNetCore.Http;
-
-namespace Elsa.Http.Abstractions;
-
-///
-/// Provides a base class for implementing .
-///
-public abstract class HttpCorrelationIdSelectorBase : IHttpCorrelationIdSelector
-{
- ///
- public virtual double Priority => 0;
-
- ///
- /// Override this method to return the correlation ID for the specified HTTP context, or null if no correlation ID could be found.
- ///
- protected virtual ValueTask GetCorrelationIdAsync(HttpContext httpContext, CancellationToken cancellationToken = default)
- {
- var correlationId = GetCorrelationId(httpContext);
- return new(correlationId);
- }
-
- ///
- /// Override this method to return the correlation ID for the specified HTTP context, or null if no correlation ID could be found.
- ///
- protected virtual string? GetCorrelationId(HttpContext httpContext) => null;
-
- ValueTask IHttpCorrelationIdSelector.GetCorrelationIdAsync(HttpContext httpContext, CancellationToken cancellationToken) => GetCorrelationIdAsync(httpContext, cancellationToken);
-}
\ No newline at end of file
diff --git a/src/http/Elsa.Http/Abstractions/HttpWorkflowInstanceIdSelectorBase.cs b/src/http/Elsa.Http/Abstractions/HttpWorkflowInstanceIdSelectorBase.cs
deleted file mode 100644
index df489073..00000000
--- a/src/http/Elsa.Http/Abstractions/HttpWorkflowInstanceIdSelectorBase.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using Microsoft.AspNetCore.Http;
-
-namespace Elsa.Http.Abstractions;
-
-///
-/// Provides a base class for implementing .
-///
-public abstract class HttpWorkflowInstanceIdSelectorBase : IHttpWorkflowInstanceIdSelector
-{
- ///
- public virtual double Priority => 0;
-
- ///
- /// Override this method to return the workflow instance ID for the specified HTTP context, or null if no workflow instance ID could be found.
- ///
- protected virtual ValueTask GetWorkflowInstanceIdAsync(HttpContext httpContext, CancellationToken cancellationToken = default)
- {
- var workflowInstanceId = GetWorkflowInstanceId(httpContext);
- return new(workflowInstanceId);
- }
-
- ///
- /// Override this method to return the workflow instance ID for the specified HTTP context, or null if no workflow instance ID could be found.
- ///
- protected virtual string? GetWorkflowInstanceId(HttpContext httpContext) => null;
-
- ValueTask IHttpWorkflowInstanceIdSelector.GetWorkflowInstanceIdAsync(HttpContext httpContext, CancellationToken cancellationToken) => GetWorkflowInstanceIdAsync(httpContext, cancellationToken);
-}
\ No newline at end of file
diff --git a/src/http/Elsa.Http/Activities/DownloadHttpFile.cs b/src/http/Elsa.Http/Activities/DownloadHttpFile.cs
deleted file mode 100644
index d355cf7c..00000000
--- a/src/http/Elsa.Http/Activities/DownloadHttpFile.cs
+++ /dev/null
@@ -1,290 +0,0 @@
-using System.Net.Http.Headers;
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using Elsa.Extensions;
-using Elsa.Http.ContentWriters;
-using Elsa.Http.UIHints;
-using Elsa.Workflows;
-using Elsa.Workflows.Attributes;
-using Elsa.Workflows.UIHints;
-using Elsa.Workflows.Models;
-using Microsoft.Extensions.Logging;
-
-namespace Elsa.Http;
-
-///
-/// An activity that downloads a file from a given URL.
-///
-[Activity("Elsa", "HTTP", "Downloads a file from a given URL.", DisplayName = "Download File", Kind = ActivityKind.Task)]
-[Output(IsSerializable = false)]
-public class DownloadHttpFile : Activity, IActivityPropertyDefaultValueProvider
-{
- ///
- public DownloadHttpFile([CallerFilePath] string? source = default, [CallerLineNumber] int? line = default) : base(source, line)
- {
- }
-
- ///
- /// The URL to download the file from.
- ///
- [Input(DisplayName = "URL", Description = "The URL to download the file from.")]
- public Input Url { get; set; } = default!;
-
- ///
- /// The HTTP method to use when sending the request.
- ///
- [Input(
- Description = "The HTTP method to use when sending the request.",
- Options = new[]
- {
- "GET", "POST", "PUT"
- },
- DefaultValue = "GET",
- UIHint = InputUIHints.DropDown
- )]
- public Input Method { get; set; } = new("GET");
-
- ///
- /// A list of expected status codes to handle.
- ///
- [Input(
- Description = "A list of expected status codes to handle.",
- UIHint = InputUIHints.MultiText,
- DefaultValueProvider = typeof(FlowSendHttpRequest)
- )]
- public Input> ExpectedStatusCodes { get; set; } = default!;
-
- ///
- /// The content to send with the request. Can be a string, an object, a byte array or a stream.
- ///
- [Input(Name = "Content", Description = "The content to send with the request. Can be a string, an object, a byte array or a stream.")]
- public Input