Overview
Elsa Workflows is not just another workflow engine; it's a robust and flexible solution designed to breathe life into your .NET applications. With Elsa, you can model both simple and complex business processes, ensuring that your applications are not only functional but also efficient and user-friendly.
Build Custom Workflow Servers
The Elsa NuGet packages are designed to be integrated into your own .NET applications for deep integration into your own domain services. For example, you might be building a custom dashboard application for your customer's users. Domain events could be sent as triggers to kick off workflows that users can design visually.
Prebuilt Docker Image
Instead of creating your own custom workflow server, you can take advantage of a prebuilt Elsa Server application that can be hosted as an ASP.NET Core web application Docker container.
Key Features
Long & Short Running Workflows: Whether you need a workflow that runs over days, waiting for user input, or one that completes in milliseconds, Elsa can handle it.
Activity Library: A rich set of out-of-the-box activities that serve as the building blocks for your workflows.
Triggers: Kick off workflows automatically based on specific events or conditions.
Dynamic Expressions: Evaluate values dynamically during runtime using C#, JavaScript or Liquid expressions.
Extensibility: Need something unique? Elsa is designed to be extensible, allowing you to add custom activities or integrate with other systems seamlessly.
Web based designer: Create workflows visually using a web-based drag & drop designer hosted in Elsa Studio, a modular, extensible web-based application built with Blazor.
Potential Use Cases
Business Process Automation: Streamline business processes like order processing, HR onboarding, or content approval.
Task Automation: Automate repetitive tasks, from data entry to report generation.
Integration Workflows: Connect disparate systems and ensure smooth data flow between them.
Alerts & Monitoring: Set up workflows to monitor systems and send alerts or take corrective actions automatically.
Dive deeper into the documentation to discover all that Elsa Workflows has to offer and start your journey towards creating dynamic, workflow-driven applications!
Glossary
A glossary of commonly used terms in Elsa:
- Workflow
A workflow is a sequence of one or more activities that can be executed. In Elsa, a workflow is represented by an instance of the `Workflow` class, and is itself an activity. The Workflow class has a single `Root` property of type `IActivity` that will be scheduled for execution when the workflow executes.
- Workflow Instance
A workflow instance represents a DB-persistable instance of a workflow that is being executed. It is represented by the `WorkflowInstance` class.
- Activity
An activity is a unit of work that can be executed by the workflow engine. Activities can be chained together to form a workflow. In Elsa, activities are represented by classes that implement the `IActivity` interface.
- Bookmark
A bookmark represents a point in a workflow where the workflow can be paused and resumed later. Bookmarks are created by blocking activities, such as the `Event` activity or the Delay activity.
- Burst of Execution
Whenever the workflow runner is executing activities, for as long as it is executing, it is performing a burst of execution. For example, when you have a workflow that executes from start to finish, the workflow executed in a single burst of execution. On the other hand, if you have a workflow that starts until it reaches a blocking activity, such as an
Event
activity, the burst of execution ends, given that no additional activities are being queued for execution. When the Delay activity ultimately triggers, it causes a new burst of execution to occur.- Blocking Activity
This term refers to activities that do not immediately complete themselves when they are first executed. Usually they create one or more bookmarks, but this is not a requirement for an activity to be blocking execution. The term "blocking" stems from the fact that the workflow will not continue executing subsequent activities on this path until the blocking activity is resumed.