GithubHelp home page GithubHelp logo

isabella232 / durabletask Goto Github PK

View Code? Open in Web Editor NEW

This project forked from azure/durabletask

0.0 0.0 0.0 6.11 MB

Durable Task Framework allows users to write long running persistent workflows in C# using the async/await capabilities.

License: Apache License 2.0

C# 99.70% PowerShell 0.30%

durabletask's Introduction

Durable Task Framework

The Durable Task Framework (DTFx) is a lightweight framework that allows users to write long running persistent workflows (referred to as orchestrations) in C# using simple async/await coding constructs. It is used heavily within various teams at Microsoft to reliably orchestrate long running provisioning, monitoring, and management operations. The orchestrations scale out linearly by simply adding more worker machines. This framework is also used to power the serverless Durable Functions extension of Azure Functions.

By open sourcing this project we hope to give the community a very cost-effective alternative to heavy duty workflow systems. We also hope to build an ecosystem of providers and activities around this simple yet incredibly powerful framework.

This project has adopted the Microsoft Open Source Code of Conduct.

For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Supported persistance stores

Starting in v2.x, the Durable Task Framework supports an extensible set of backend persistence stores. Each store can be enabled using a different NuGet package. The latest version of all packages are signed and available for download at nuget.org.

Package Latest Version Details Development Status
DurableTask.ServiceBus NuGet Orchestration message and runtime state is stored in Service Bus queues while tracking state is stored in Azure Storage. The strength of this provider is its maturity and transactional consistency. However, it is no longer in active development at Microsoft. Production ready but not actively maintained
DurableTask.AzureStorage NuGet All orchestration state is stored in Azure Storage queues, tables, and blobs. The strength of this provider is the minimal service dependencies, high efficiency, and rich feature-set. This is the only backend available for Durable Functions. Production ready and actively maintained
DurableTask.AzureServiceFabric NuGet All orchestration state is stored in Azure Service Fabric Reliable Collections. This is an ideal choice if you are hosting your application in Azure Service Fabric and don't want to take on external dependencies for storing state. Production ready and actively maintained
DurableTask.Emulator NuGet This is an in-memory store intended for testing purposes only. It is not designed or recommended for any production workloads. Not actively maintained

The core programming model for the Durable Task Framework is contained in the DurableTask.Core package, which is also under active development.

Learning more

The associated wiki contains more details about the framework and how it can be used: https://github.com/Azure/durabletask/wiki. You can also find great information in this blog series. In some cases, the Durable Functions documentation can actually be useful in learning things about the underlying framework, although not everything will apply. Lastly, you can watch a video with some of the original maintainers in this Channel 9 video.

Development Notes

To run unit tests, you must specify your Service Bus connection string for the tests to use. You can do this via the ServiceBusConnectionString app.config value in the test project, or by defining a DurableTaskTestServiceBusConnectionString environment variable. The benefit of the environment variable is that no temporary source changes are required.

Unit tests also require Azure Storage Emulator, so make sure it's installed and running.

Note: While it's possible to use in tests a real Azure Storage account it is not recommended to do so because many tests will fail with a 409 Conflict error. This is because tests delete and quickly recreate the same storage tables, and Azure Storage doesn't do well in these conditions. If you really want to change Azure Storage connection string you can do so via the StorageConnectionString app.config value in the test project, or by defining a DurableTaskTestStorageConnectionString environment variable.

There is a gitter for this repo, but it's not currently being monitored. We're leaving the link for it up for now and will update this message if anything changes.

Join the chat at https://gitter.im/azure/durabletask

durabletask's People

Contributors

cgillum avatar simonporter avatar affandar avatar amdeel avatar gled4er avatar gfrancomsft avatar alextolp avatar adarsh1 avatar sebastianburckhardt avatar tkamesh avatar kashimiz avatar connormcmahon avatar glennamanns avatar pradeepkadubandi avatar samarabbas avatar tsuyoshiushio avatar zheg avatar willgo962 avatar shankarsama avatar scooletz avatar chenglongliu avatar cmkerner20 avatar chilberto avatar babrekel avatar arunkaithayil avatar vishal-gandhi avatar bachuv avatar scabana avatar grajdeanserghei avatar preecington avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.