You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
chronicle://host1:port,host2:port,... connection strings — the client now connects to any one of several configured hosts instead of only a single server. IPv6 hosts are supported via bracket notation.
chronicle+srv:// connection strings, resolving the target host(s) via a DNS SRV lookup, re-resolved on every connect/reconnect so membership changes are picked up automatically. The DNS server to query can be overridden with the srvNameServer option.
A loadBalancer connection string option selecting how one address is picked among several candidates: least-connections (the default — probes each candidate and picks the one with the fewest active connections), round-robin, or random.
A skipTlsValidation connection string option to skip TLS certificate validation independently of disabling TLS entirely. Defaults to true, matching the client's previous behavior — set skipTlsValidation=false to require full certificate chain validation.
Client connections now report the process id, machine name, and client type to the Chronicle kernel, improving connection diagnostics.
Changed
The gRPC connection target now resolves any configured hostname correctly; previously only localhost was guaranteed to resolve.
Fixed
Reactors and reducers no longer stop receiving events about a minute after startup. The client consumed the kernel's keep-alives but never answered them, so the kernel stopped counting it as connected and unsubscribed its observers — appending events kept working, which made the client look healthy.
A lost connection is now detected and reconnected even when the stream stays open. The kernel does not close the keep-alive stream when it evicts a client, so a half-disconnected client previously stayed in that state until the application was restarted.
A dropped connection no longer schedules two overlapping reconnects, and a connection that never came up no longer reports a disconnect to observers.