Welcome to DCR.Workflow!

DCR.Workflow is a C# library providing functionality for executing and serializing workflows defined by an underlying DCR model.

A DCR model is a mathematical representation of a Process, that is, the possible ways to proceed when undertaking some work. That work may comprise both actions taken by humans (reading a document, writing a letter, authorizing a payout) and automated actions taken be "the system" (receiving a request via a web form, issuing a payment).

The DCR model interacts with its host system and the outside worlds by (a) some actions carrying data values and (b) some actions having side-effects. A side-effect could be retrieving the registration number of a company by name from a public registry, or pushing an update to a database.

DCR models are created by domain experts using the [DCR Designer]. They are subsequently made available to applications either via REST calls to the [DCR Repository], or by manually exporting .XML files from the [DCR Designer].

The DCR.Workflow library provides a C# API for using DCR models to define and execute workflows in business applications. The DCR model defines how the workflow is supposed to proceed, and the DCR.Workflow library provides the technology necessary to integrate that model with the host application.

  • Retrieve DCR Model templates created from the [DCR Repository]
  • serialize to/from XML representations of DCR models
  • query the current state of the DCR model
  • advance the state of the model by executing an activity
  • define and execute side-effects of workflow activities

Next steps

Draft as of feb 6 2024.