ragflow icon indicating copy to clipboard operation
ragflow copied to clipboard

[Question]: Does RAGFlow Support High Availability (HA) Deployment for ragflow-server?

Open neowmm opened this issue 1 month ago • 4 comments

Self Checks

  • [x] I have searched for existing issues search for existing issues, including closed ones.
  • [x] I confirm that I am using English to submit this report (Language Policy).
  • [x] Non-english title submitions will be closed directly ( 非英文标题的提交将会被直接关闭 ) (Language Policy).
  • [x] Please do not modify this template :) and fill in all the required fields.

Describe your problem

Hello RAGFlow Team,

First of all, thank you for developing this excellent tool. We are currently evaluating RAGFlow for our production environment and have a question regarding the deployment architecture.

We have successfully set up a basic deployment. However, for our production needs, high availability and fault tolerance are critical requirements. We need to ensure that the RAGFlow service remains accessible even if one of the server instances fails.

Could you please clarify the current capabilities and future plans regarding this?

  1. High Availability for ragflow-server: Does the current version of RAGFlow support deploying multiple ragflow-server instances behind a load balancer? If so, is there any official documentation or recommended practice for this setup (e.g., regarding session management or shared state)?
  2. Stateless Design: Is the ragflow-server component designed to be stateless? This is a key factor for enabling easy horizontal scaling. If it's not entirely stateless, what are the stateful parts that we need to consider (e.g., in-memory cache, file handles)?
  3. External Dependencies: We understand that components like the database (MySQL) and vector database (e.g., Chroma) would need their own HA setup. Our primary question is specifically about the RAGFlow application server itself.

Any information, guidance, or pointers to relevant documentation would be greatly appreciated.

Thank you for your time and support.

Best regards, neowmm

neowmm avatar Nov 13 '25 14:11 neowmm

Hi @neowmm! I'm Dosu and I’m helping the ragflow team.

RAGFlow's ragflow-server can be deployed in a high availability (HA) setup by running multiple instances behind a load balancer. The server is designed to be stateless for most operations—coordination and state management (like distributed locking and message queues) are handled externally via Redis, MySQL, and other backend services, not in local memory or files. This means you can horizontally scale ragflow-server, but you must ensure that Redis and other dependencies are themselves highly available for true system resilience. There is no official documentation or guide for HA deployment or session management, so you'll need to validate your setup and monitor your external services carefully. For details on how Redis is used for distributed locks and coordination, see ragflow_server.py and redis_conn.py.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Chat with Dosu Join Discord Share on X

dosubot[bot] avatar Nov 13 '25 14:11 dosubot[bot]

Second that! Has the community considered separating the API and task_executor? The API supports load balancing, while task_executor supports horizontal scaling?

riverbutte avatar Nov 20 '25 07:11 riverbutte

@neowmm Yes we do support HA.

Magicbook1108 avatar Nov 27 '25 03:11 Magicbook1108

@riverbutte If you believe this is necessary, please feel free to raise a feature request to improve its privilege.

Magicbook1108 avatar Nov 27 '25 03:11 Magicbook1108

Since there has been no further activity for over three weeks, we will proceed to close this issue. If the problem persists or you have additional questions, please feel free to reopen the issue or create a new one. We’re happy to assist anytime.

Magicbook1108 avatar Dec 15 '25 07:12 Magicbook1108