Page MenuHomePhabricator

Add dynamic configuration to cxserver
Closed, DeclinedPublicFeature

Description

Feature summary

Allow CXServer to support dynamic configuration per host by introducing hooks at key points in the code. This will enable fetching configuration dynamically instead of relying solely on static YAML files. User can still use static configuration, but can also set a flag to inject dynamic one per host.

Use case(s)

We running multi systems, each have its own different languages, each uses different MT api keys, etc. We need a way to apply different configurations per system and per host dynamically. The proposed solution is to introduce hooks at specific points in the code, allowing configurations to be retrieved dynamically based on the host.

Benefits

  • Enables more granular control over configurations per host without modifying static files.
  • Reduces operational overhead and manual configuration updates.
  • Allows for greater flexibility in multi-system, multi-host environments.

We are willing to implement this feature ourselves, including writing the necessary code. Our question is whether such a change would be acceptable to the project maintainers.

Event Timeline

Following discussions with the team, we've concluded that dynamic configuration is not a use case currently supported by Wikimedia. Our configurations are static, managed through updates and deployments. The
conf.yaml file facilitates this by allowing for varied configurations across different deployments, as it's separate from the codebase.

We lack comprehensive insight into your infrastructure's cxserver implementation, preventing us from definitively explaining why your proposed setup might be unsuitable for your deployments.

Regarding the proposed hooks system, even a seemingly trivial code addition would introduce review and maintenance overhead for our team. Given that this feature would not be utilized or tested within our infrastructure, we would have low confidence in its stability. Furthermore, our development agility relies on the understanding that cxserver primarily serves Wikimedia, without commitments to external use cases.

It's important to note that cxserver doesn't have a dedicated team at Wikimedia. Instead, it's maintained by a small group of engineers managing language-related projects, which limits our capacity. Consequently, the team doesn't support the proposed hooks system. We appreciate your understanding.

Nikerabbit edited projects, added CXServer; removed CX-cxserver.