Skip to content

Commit ccda688

Browse files
committed
Guidance about side-by-side deployments
1 parent febd642 commit ccda688

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

docs/source/includes/_faq.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ func Workflow1(ctx workflow.Context) {
2222
}
2323
```
2424

25+
<div style="clear: both"></div>
26+
27+
to
28+
2529
> Workflow version 2
2630
2731
```go
@@ -38,6 +42,8 @@ func Workflow1(ctx workflow.Context) {
3842
}
3943
```
4044

45+
<div style="clear: both"></div>
46+
4147
and you replay a workflow history that contains:
4248

4349
1. `ActivitySchedule` - `Activity1`
@@ -63,6 +69,14 @@ func Workflow1(ctx workflow.Context) {
6369
}
6470
```
6571

72+
<div style="clear: both"></div>
73+
6674
and only if a workflow instance was created with a version of `>= 2` will `Activity3` be executed. Older workflows are persisted with a version `< 2` and will not execute `Activity3`.
6775

6876
This kind of check is understandable for simple changes, but it becomes hard and a source of bugs for more complicated workflows. Therefore for now versioning is not supported and the guidance is to rely on **side-by-side** deployments. See also Azure's [Durable Functions](https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-versioning) documentation for the same topic.
77+
78+
## How to safely upgrade?
79+
80+
All backend implementations have limited support for migrations which by default are automatically executed when a backend is started. This generally assumes only a single running worker. If you use multiple workers, you need to synchronize migration execution yourself.
81+
82+
In general, the guidance is to rely on **side-by-side** deployments. See also the previous section about workflow versioning.

0 commit comments

Comments
 (0)