In the real world, we know that code is constantly changing. This is also the case for the solutions developed with Durable Functions.
Every time a Durable Function restarts, it uses its history to reconstruct its state, and there are several breaking changes you keep in mind every time you change your code:
- Changing activity functions
- Changing orchestrator functions
If you simply change the internal implementation of an activity function, you won't have an issue with the orchestration (the contract exposed by the activity function hasn't a breaking change so the running orchestrator function can continue to work correctly).
If you change the signature of the activity function, you may have issues with the running orchestrator instances.
Imagine you have the first version of your activity that accepts an Order instance and returns...