Documentation
¶
Overview ¶
elastickv-list-routes prints the cluster's current route catalog as JSON. Used by the Composed-1 M5a Jepsen setup-hook verification to assert the launch script's --shardRanges actually placed the M5 table-route keys on the expected Raft groups before any workload op runs.
Per the design doc (docs/design/2026_06_02_partial_composed1_m5_jepsen_route_shuffle.md §3.3), the Jepsen client's setup! shells out to this tool rather than re-implementing the gRPC client in Clojure: a JSON contract is stable across versions and a future ListRoutes schema change shows up as an unmarshal failure rather than as a silent mis-routing during a Jepsen run.
Usage:
elastickv-list-routes --address 127.0.0.1:50051
Output (stdout, one JSON object):
{
"catalog_version": 7,
"routes": [
{"route_id": 100, "raft_group_id": 1, "start": "...", "end": "...", "state": "ROUTE_STATE_ACTIVE"},
...
]
}
`start` and `end` are base64-encoded raw bytes so any byte sequence (including unprintables in the routing keyspace) survives the JSON round-trip without quoting issues. Non-zero exit on any error so the Jepsen setup-hook sees the failure verbatim.