Find a file
2022-12-20 11:33:31 +01:00
.github/workflows Update designer project file 2022-12-20 11:33:31 +01:00
design V3 workflow instance viewer (#3098) 2022-05-31 20:26:45 +02:00
gen Update DSL and sample 2022-03-28 13:25:45 +02:00
src Update designer project file 2022-12-20 11:33:31 +01:00
test Remove outdated tests 2022-12-16 22:07:24 +01:00
.dockerignore Add samples and docker support 2022-04-29 14:40:25 +02:00
.gitignore Implement async workflow state exporter for DB workflow instance (#3291) 2022-09-07 17:28:36 +02:00
common.props Prepare projects for packaging 2022-11-03 21:40:23 +01:00
configureawait.props Incremental work 2022-08-26 21:59:17 +02:00
docker-compose.yml Implement Hangfire proxy job 2022-03-21 11:41:27 +01:00
docker-run-all-in-one-web.ps1 Add samples and docker support 2022-04-29 14:40:25 +02:00
Elsa.sln Add Designer package 2022-12-13 21:49:38 +01:00
Elsa.sln.DotSettings Telnyx integration (#3453) 2022-11-19 22:30:43 +01:00
LICENSE Add sources from experimental repo 2022-01-04 09:42:12 +01:00
NuGet.Config Add sources from experimental repo 2022-01-04 09:42:12 +01:00
README.md Update README 2022-12-19 12:21:08 +01:00

Elsa Workflows

Nuget Build status Discord Stack Overflow questions Subreddit subscribers

Elsa is a workflows library that enables workflow execution in any .NET application. Workflows can be defined in a variety of ways:

  • Using C# code
  • Using a designer
  • Using JSON
  • Using a custom DSL

Documentation

Please checkout the documentation website to get started.

Features

Here are some of the more important features offered by Elsa:

  • Execute workflows in any .NET app.
  • Supports both short-running and long-running workflows.
  • Programming model loosely inspired on WF4 (composable activities)
  • Support for complex activities such as Sequence and Flowchart.
  • Ships with a workflows designer web component (currently supports Flowchart diagrams only).

Examples

Hello World: Console

The following is a simple Hello World workflow created as a console application. The workflow is created using C#.

using Elsa.Extensions;
using Elsa.Workflows.Core.Activities;
using Elsa.Workflows.Core.Services;
using Microsoft.Extensions.DependencyInjection;

// Setup service container.
var services = new ServiceCollection();

// Add Elsa services.
services.AddElsa();

// Build service container.
var serviceProvider = services.BuildServiceProvider();

// Create a workflow.
var workflow = new WriteLine("Hello World!");

// Resolve a workflow runner to run the workflow.
var workflowRunner = serviceProvider.GetRequiredService<IWorkflowRunner>();

// Run the workflow.
await workflowRunner.RunAsync(workflow);

Outputs:

Hello World!