Alex Boisvert wrote:
Maciej Szefler wrote:
I propose that we do not put too many restrictions on what a new version
of a process looks like. It only needs to enforce the following rules:
1. A service exposed in version n, must also be exposed in version n+1
2. An operation used in version n, must have the same signature in
version n+1
3. A data type used in version n, must have the same definition in
version n+1.
Personally, I still find this too restrictive. My proposal would be to consider the version attribute as part of the process identifier -- effectively making two processes with the same name+namespace but with different version identifiers completely unrelated from an implementation standpoint. The deployment rules for two such processes would be the same as if they did not share common name+namespace.

As further clarification, I think it should be a responsibility of the tooling around the engine to define/enforce a given deployment and activation policy. For instance, the tooling could automatically undeploy or retire previous versions of a process when deploying a new one. It could even automatically wipe out previous instances if I'm working in development mode (versus production).

So I would prefer an approach where the engine provides general mechanisms for managing process versions and we leave it to the integration layer / tooling around the engine to define particular behavior related to lifecycle management.

alex


Reply via email to