---
url: https://node-ts.github.io/bus/api/bus-core/classes/WorkflowState.md
---
[API reference](../../index.md) / [@node-ts/bus-core](../index.md) / WorkflowState

# Abstract Class: WorkflowState

Defined in: [packages/bus-core/src/workflow/workflow-state.ts:22](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-core/src/workflow/workflow-state.ts#L22)

A base workflow state definition to model and persist the state of a workflow throughout
its lifespan.

## Extended by

* [`TestFunctionRoundTripWorkflowState`](../../bus-test/classes/TestFunctionRoundTripWorkflowState.md)
* [`TestRoundTripWorkflowState`](../../bus-test/classes/TestRoundTripWorkflowState.md)

## Constructors

### Constructor

```ts
new WorkflowState(): WorkflowState;
```

#### Returns

`WorkflowState`

## Properties

| Property | Modifier | Type | Default value | Description | Defined in |
| ------ | ------ | ------ | ------ | ------ | ------ |
| <a id="property-name"></a> `$name` | `abstract` | `string` | `undefined` | A unique name for the workflow state. This should be formatted in a namespace style, ie: 'company/application/workflow-name' eg: $name = 'node-ts/bus-core/my-workflow' | [packages/bus-core/src/workflow/workflow-state.ts:44](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-core/src/workflow/workflow-state.ts#L44) |
| <a id="property-status"></a> `$status` | `public` | [`WorkflowStatus`](../enumerations/WorkflowStatus.md) | `undefined` | Marks if the workflow is currently running or has ended | [packages/bus-core/src/workflow/workflow-state.ts:37](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-core/src/workflow/workflow-state.ts#L37) |
| <a id="property-version"></a> `$version` | `public` | `number` | `0` | Used to manage concurrency when storing the workflow state. This value is incremented each time the data is persisted which keeps locking of data low. | [packages/bus-core/src/workflow/workflow-state.ts:32](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-core/src/workflow/workflow-state.ts#L32) |
| <a id="property-workflowid"></a> `$workflowId` | `public` | `string` | `undefined` | Unique identifier of the workflow state | [packages/bus-core/src/workflow/workflow-state.ts:26](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-core/src/workflow/workflow-state.ts#L26) |
