Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remote Key Value store Support #3

Open
tanishq-dubey opened this issue Jan 13, 2020 · 1 comment
Open

Remote Key Value store Support #3

tanishq-dubey opened this issue Jan 13, 2020 · 1 comment
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@tanishq-dubey
Copy link
Contributor

Key-Value stores such as Consul and Etcd are quite popular and used to store configuration, and I think they should be supported by gestalt. However, there are a few questions to ask before work can begin:

  1. What priority should the KV be given?
  2. Should the KV be read into memory at init time? Should the KV cache the values (only go to server on first call)? Or, should the KV be obtained from the server each time?
  3. As a V1, what KV features should be implemented?

I think using the Consul and Etcd libraries should provide 90% of the functionality, but the goal should be to try and obfuscate complexity from the user, such that they only have to provide connection details, and then use gestalt as normal.

@tanishq-dubey tanishq-dubey added enhancement New feature or request help wanted Extra attention is needed labels Jan 13, 2020
@tzachshabtay
Copy link

Maybe you can give control (for 1 & 2) to the user to decide which "config sources" exist and their priorities and also allow configuring how to behave internally. So, as an example, something like:

gestalt.set_sources(
              gestalt.JsonFile(),
              gestalt.EnvVars(),
              gestalt.Consul(cache=gestalt.NeverCache)
)

So in this example Consul is last in priority, and it will go to the server each time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants