Part of #63.
Two rows of docs/rpc-compatibility.md describe the same problem from different ends: gate D — discovery bootstraps without being told a proxy — is not started, and layer 3 records one connection per client, with no pool, no per-proxy health and no banning.
That shape works against a cluster whose proxy you can name in a config file. It does not survive a real installation, where there are many RPC proxies, some fraction of them unhealthy at any moment, and neither reference client asks the user to pick one.
DiscoverProxies over RPC is implemented — but it needs a proxy already, which is the whole of gate D. The HTTP discover_proxies route both reference clients bootstrap from is deliberately absent from ytsaurus-rpc, because it would drag an HTTP stack into a crate that has none; ytsaurus-client already speaks HTTP v4 and can answer it.
Part of #63.
Two rows of
docs/rpc-compatibility.mddescribe the same problem from different ends: gate D — discovery bootstraps without being told a proxy — is not started, and layer 3 records one connection per client, with no pool, no per-proxy health and no banning.That shape works against a cluster whose proxy you can name in a config file. It does not survive a real installation, where there are many RPC proxies, some fraction of them unhealthy at any moment, and neither reference client asks the user to pick one.
DiscoverProxiesover RPC is implemented — but it needs a proxy already, which is the whole of gate D. The HTTPdiscover_proxiesroute both reference clients bootstrap from is deliberately absent fromytsaurus-rpc, because it would drag an HTTP stack into a crate that has none;ytsaurus-clientalready speaks HTTP v4 and can answer it.discover_proxiesbootstrap, sourced fromytsaurus-clientrather than by adding an HTTP stack heredocs/rpc-compatibility.md, or its wording changes to match what was decided