DEPRECATED — kept only as a re-export shim for the public surface that
pre-resilience-split consumers (store/batch.clj, store/entries.clj,
store/lifecycle.clj, store/analytics.clj, store/staleness.clj)
already :refer from this ns.
New code MUST require directly from one of:
hive-milvus.resilience.probe — cached liveness query
hive-milvus.resilience.reconnect — heal-loop + verified reconnect
hive-milvus.resilience.retry — reactive retry + resilient macro
Why split: SRP. The old monolith owned 5 concerns (circuit, probe,
loop, retry, classify) in one 290-line file; each had its own rate
of change and test surface. The split makes adding a transport (e.g.
future WebSocket) require zero changes to the resilience layer —
only an extend-type for milvus-clj.client/ILivenessProbe.
The bug fix that motivated the split: the old loop's success
criterion was post-connect! atom state, not an actual probe
round-trip. After a network flip the atom would be set fresh while
the underlying transport was still unreachable, so the loop exited
prematurely and operators had to restart the JVM. The new
reconnect/try-reconnect-and-verify! requires both connect! AND
a successful probe! to declare recovery.
This shim re-exports the public surface so old consumers compile unchanged. Will be deleted in a future PR after consumers migrate.
DEPRECATED — kept only as a re-export shim for the public surface that pre-resilience-split consumers (`store/batch.clj`, `store/entries.clj`, `store/lifecycle.clj`, `store/analytics.clj`, `store/staleness.clj`) already `:refer` from this ns. New code MUST require directly from one of: hive-milvus.resilience.probe — cached liveness query hive-milvus.resilience.reconnect — heal-loop + verified reconnect hive-milvus.resilience.retry — reactive retry + `resilient` macro Why split: SRP. The old monolith owned 5 concerns (circuit, probe, loop, retry, classify) in one 290-line file; each had its own rate of change and test surface. The split makes adding a transport (e.g. future WebSocket) require zero changes to the resilience layer — only an `extend-type` for `milvus-clj.client/ILivenessProbe`. The bug fix that motivated the split: the old loop's success criterion was post-`connect!` atom state, not an actual probe round-trip. After a network flip the atom would be set fresh while the underlying transport was still unreachable, so the loop exited prematurely and operators had to restart the JVM. The new `reconnect/try-reconnect-and-verify!` requires both `connect!` AND a successful `probe!` to declare recovery. This shim re-exports the public surface so old consumers compile unchanged. Will be deleted in a future PR after consumers migrate.
(backoff-ms attempt base-ms max-ms)DEPRECATED. The reconnect loop now owns its own backoff curve (private
to resilience.reconnect). Kept here only for any external caller
that pinned to the old shape; signature preserved.
DEPRECATED. The reconnect loop now owns its own backoff curve (private to `resilience.reconnect`). Kept here only for any external caller that pinned to the old shape; signature preserved.
(resilient config-atom & body)DEPRECATED alias for hive-milvus.resilience.retry/resilient.
DEPRECATED alias for `hive-milvus.resilience.retry/resilient`.
(try-reconnect! config-atom)DEPRECATED. Redirects to reconnect/kick! + reconnect/await! so
callers get probe-verified recovery semantics instead of the old
atom-state-only success criterion.
DEPRECATED. Redirects to `reconnect/kick!` + `reconnect/await!` so callers get probe-verified recovery semantics instead of the old atom-state-only success criterion.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |