Durable Task Framework is an open source framework that provides a foundation for workflow as code in .NET platform.
This project aims to extend it with:
- .NET Dependency Injection and Hosting integration
- Administrative and monitoring UI
- EFCore storage with support for InMemory, MySQL, PostgreSQL, SQL Server and some extra features.
- Storage delegation via GRPC protocol
Builds on top of Durable Task Framework to deliver a serverless workflow as code product focused on Azure.
Cadence is a scalable and reliable workflow as code platform built an used by Uber. It is heavily inspired on Durable Functions, but also includes some addicional features like tasks lists and a monitoring UI. Cadence features are used as inspiration for this project.
Temporal is a fork of Cadence backed by a company with the same name and founded by the original creators of Cadence. It is under active development and might end up officially supporting .NET clients.
Name (click for readme) | Package | Description |
---|---|---|
LLL.DurableTask.Client | DI extensions to configure TaskHubClient. | |
LLL.DurableTask.Worker | DI extensions to configure TaskHubWorker. | |
LLL.DurableTask.Api | Exposes TaskHubClient operations as REST API. | |
LLL.DurableTask.Ui | UI to monitor and manage orchestrations. | |
LLL.DurableTask.Server | Expose storage as API. | |
LLL.DurableTask.Server.Grpc | GRPC endpoints for server. | |
LLL.DurableTask.Server.Grpc.Client | Storage implementation using server GRPC endpoints. | |
LLL.DurableTask.AzureStorage | Dependency injection for Azure Storage | |
LLL.DurableTask.EFCore | EFCore relational database storage implementation with extra features. | |
LLL.DurableTask.EFCore.InMemory | EFCore storage InMemory support. | |
LLL.DurableTask.EFCore.MySql | EFCore storage MySql support. | |
LLL.DurableTask.EFCore.PostgreSQL | EFCore storage PostgreSQL support. | |
LLL.DurableTask.EFCore.SqlServer | EFCore storage Sql Server support. |
Our components were designed to be independent and highly composable. See below some possible architectures.
See samples for an implementation of the classic book Flight, Car, Hotel with compensation problem using all componentes from above.