sdk-net icon indicating copy to clipboard operation
sdk-net copied to clipboard

.NET SDK for Serverless Workflow

trafficstars

Serverless Workflow .NET SDK

The official .NET SDK for the Serverless Workflow DSL.

The SDK is composed of three Nuget packages:

  • Core, which contains the models of the Serverless Workflow DSL
  • Builders, which contains service used to build workflow definitions programmatically
  • IO, which contains the services used to read and write workflow definitions

Installation

Core:

dotnet add package ServerlessWorkflow.Sdk

Builders:

dotnet add package ServerlessWorkflow.Sdk.Builders

IO:

dotnet add package ServerlessWorkflow.Sdk.IO

Example usage

Building a workflow definition programmatically:

var definition = new WorkflowDefinitionBuilder()
    .WithName("fake-workflow")
    .WithVersion("0.1.0:fake")
    .Do("todo-1", task => task
        .Call("http")
        .With("method", "get")
        .With("uri", "https://fake-api.com"))
    .Build();

Reading and writing a workflow definition:

using var inputStream = File.OpenRead("workflow.yaml");
var reader = WorkflowDefinitionReader.Create();
var workflow = await reader.ReadAsync(inputStream);

using var outputStream = File.Create("workflow.yaml");
var writer = WorkflowDefinitionWriter.Create();
await writer.WriteAsync(workflow, stream, WorkflowDefinitionFormat.Yaml);