Skip to content

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

Closed
@nurzhan-saktaganov

Description

@nurzhan-saktaganov

Original: KaymeKaydex/go-vshard-router#65

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.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions