- the peer controller error encoder read err.Code into a JSON map, which after the AppCode rename
is a bound method that json.Marshal rejects, so every forwarded API error fell to the generic
path; it now encodes AppCode and, as on 2.0.x, sends a cause with nothing to marshal as text
- the REST responder logged e.Code as a field for the same reason
- the perf-tagged rate limiter test compared the method value to a code string
- extracts encodeApiError and tests that the encoding succeeds and carries the code as a string
Adds config to controller for heartbeat config
Add config to routers for heartbeat config
Adds configurable heartbeats to controller <-> controller connections
Add more raft config knobs
Refactor peer handles to be consistent with other handlers
Allow inspect to work across controllers
Add config and clusterconfig inspect support