Skip to content
This repository has been archived by the owner on Dec 23, 2024. It is now read-only.

Make NewRouter tolerant to the cluster's degraded state #65

Open
nurzhan-saktaganov opened this issue Sep 13, 2024 · 1 comment
Open
Labels
enhancement New feature or request invalid This doesn't seem right production-ready-criitical critical to become production-ready-library

Comments

@nurzhan-saktaganov
Copy link
Collaborator

NewRouter returns an error if some (all) cluster replicas are down (or in case of misconfiguration too).

It's ok if some replicas are temporarily unavailable (due to an incident or something else).
However, it is not ok, if we can't start some application that uses go-vshard-router (or create struct Router instance) due to a degraded cluster.

We should be able to work as best as we can even in the worst possible external factors, for example: the availability of cluster replicas is an external factor, that can change over time (a replica can be under maintenance, a network between hosts might be cut off).

But it's ok to return an error due to internal factors, that will not change over time, for example, an invalid config won't fix automatically: an application should be restarted with the corrected config.

@nurzhan-saktaganov nurzhan-saktaganov added enhancement New feature or request invalid This doesn't seem right labels Sep 13, 2024
@nurzhan-saktaganov
Copy link
Collaborator Author

JFYI, similar issue in go-tarantool tarantool/go-tarantool#372

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request invalid This doesn't seem right production-ready-criitical critical to become production-ready-library
Projects
None yet
Development

No branches or pull requests

1 participant