Smooth Plugin Upgrade with Blue-Green Deployment and Traffic Observation #18398

Closed
opened 2026-02-21 19:47:10 -05:00 by yindo · 0 comments
Owner

Originally created by @Woo0ood on GitHub (Sep 28, 2025).

Self Checks

  • I have read the Contributing Guide and Language Policy.
  • I have searched for existing issues search for existing issues, including closed ones.
  • I confirm that I am using English to submit this report, otherwise it will be closed.
  • Please do not modify this template :) and fill in all the required fields.

1. Is this request related to a challenge you're experiencing? Tell me about your story.

We are experiencing a significant challenge during plugin upgrades. The old plugin version is immediately uninstalled during the upgrade process, and the new version takes over, causing existing business traffic to be forcibly interrupted. This results in workflow failures or unexpected errors, which is highly risky in production environments and severely affects user experience and system stability. We need a smooth version switching mechanism to prevent interruptions to ongoing traffic.

2. Additional context or comments

Description

Currently, when upgrading a plugin, the ongoing business traffic is forcibly interrupted, which negatively impacts running workflows and causes instability in production environments.

Plugins act as executors in business workflows. During version upgrades, the old version is immediately replaced by the new one. Without a smooth transition mechanism, all traffic handled by the old plugin gets interrupted, potentially causing workflow failures or unexpected errors.

Solution

Introduce a blue-green deployment mechanism for plugin upgrades, supporting automatic and manual modes:

  • Blue-Green Switching: Old versions continue handling existing traffic, while new requests are routed to the new version.
  • Traffic Monitoring: Provide visualized traffic observation in the plugin info sidebar, showing traffic status of both old and new versions.
  • Automatic Mode: When the old version’s traffic drops to zero, the system automatically completes the replacement and shuts down the old version.
  • Manual Mode: Requires manual confirmation to retire the old version; rollback is supported, ensuring smooth handover without interrupting ongoing flows.

We have already completed the development of this feature and would greatly appreciate hearing the community’s perspective on it. In particular, we would like to understand whether this functionality is considered valuable and needed. If so, we would be glad to contribute the code back to the project.

https://github.com/user-attachments/assets/c2e79157-c0ed-4f58-b2b1-6aaa4b35bf49

3. Can you help us with this feature?

  • I am interested in contributing to this feature.
Originally created by @Woo0ood on GitHub (Sep 28, 2025). ### Self Checks - [x] I have read the [Contributing Guide](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md) and [Language Policy](https://github.com/langgenius/dify/issues/1542). - [x] I have searched for existing issues [search for existing issues](https://github.com/langgenius/dify/issues), including closed ones. - [x] I confirm that I am using English to submit this report, otherwise it will be closed. - [x] Please do not modify this template :) and fill in all the required fields. ### 1. Is this request related to a challenge you're experiencing? Tell me about your story. We are experiencing a significant challenge during plugin upgrades. The old plugin version is immediately uninstalled during the upgrade process, and the new version takes over, causing existing business traffic to be forcibly interrupted. This results in workflow failures or unexpected errors, which is highly risky in production environments and severely affects user experience and system stability. We need a smooth version switching mechanism to prevent interruptions to ongoing traffic. ### 2. Additional context or comments ## Description Currently, when upgrading a plugin, the ongoing business traffic is forcibly interrupted, which negatively impacts running workflows and causes instability in production environments. Plugins act as executors in business workflows. During version upgrades, the old version is immediately replaced by the new one. Without a smooth transition mechanism, all traffic handled by the old plugin gets interrupted, potentially causing workflow failures or unexpected errors. ## Solution Introduce a blue-green deployment mechanism for plugin upgrades, supporting automatic and manual modes: - Blue-Green Switching: Old versions continue handling existing traffic, while new requests are routed to the new version. - Traffic Monitoring: Provide visualized traffic observation in the plugin info sidebar, showing traffic status of both old and new versions. - Automatic Mode: When the old version’s traffic drops to zero, the system automatically completes the replacement and shuts down the old version. - Manual Mode: Requires manual confirmation to retire the old version; rollback is supported, ensuring smooth handover without interrupting ongoing flows. We have already completed the development of this feature and would greatly appreciate hearing the community’s perspective on it. In particular, we would like to understand whether this functionality is considered valuable and needed. If so, we would be glad to contribute the code back to the project. https://github.com/user-attachments/assets/c2e79157-c0ed-4f58-b2b1-6aaa4b35bf49 ### 3. Can you help us with this feature? - [x] I am interested in contributing to this feature.
yindo added the 💪 enhancement label 2026-02-21 19:47:10 -05:00
yindo closed this issue 2026-02-21 19:47:10 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#18398