Is Shared flow deployment Atomic?

Hello,

I couldn't find any info in the Apigee documentation, so i thought i'd post the question here.

If i redeploy a shared flow in production, and i have a bunch of proxies referencing that shared flow, what happens to the inflight proxy transactions when the shared flow is being redeployed?

Would such transactions fail? Or does the message processor have a more intelligent strategy to avoid such failures.

Any insights are appreciated

Regards,

Rahul

Solved Solved
0 5 427
1 ACCEPTED SOLUTION

I investigated. The deployment API for sharedflows supports the same override=true parameter that is available for the API that deploys API Proxies.

So, hot deploy works.

We don't call this behavior "Atomic" , so I won't answer affirmatively to that question.

But I can say that

If you deploy a new revision of a shared flow in production, using the API and if you specify the override=true parameter, any inflight transactions being handled by proxies that reference that sharedflow, will be successfully handled with no downtime or outage.

I believe that the "Deploy" button in the UI doesn't use override=true. You can get this behavior only if you deploy with a tool that directly calls the API.

View solution in original post

5 REPLIES 5

Hmmmm, good question. I don't know if the override=true argument that is available for deploying proxies, also works on shared flows. Let me check into this.

I investigated. The deployment API for sharedflows supports the same override=true parameter that is available for the API that deploys API Proxies.

So, hot deploy works.

We don't call this behavior "Atomic" , so I won't answer affirmatively to that question.

But I can say that

If you deploy a new revision of a shared flow in production, using the API and if you specify the override=true parameter, any inflight transactions being handled by proxies that reference that sharedflow, will be successfully handled with no downtime or outage.

I believe that the "Deploy" button in the UI doesn't use override=true. You can get this behavior only if you deploy with a tool that directly calls the API.

@jonesfloyd - this is worth documenting.

Thank you, Dino! b/123717606

Thank you @Dino

My usage of the word "atomic" was to imply that at any given time during the deployment process, Apigee Edge will guarantee that one instance (old/new) of the shared flow is ALWAYS available - not in a strict transactional sense, but from a process sense.

And this is definitely worth documenting. Thanks for the quick response