serverlessworkflow / sdk-net

.NET SDK for Serverless Workflow
Apache License 2.0
54 stars 15 forks source link
cncf dotnet sdk serverless workflow

Serverless Workflow .NET SDK

The official .NET SDK for the Serverless Workflow DSL.

The SDK is composed of three Nuget packages:

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);