Skip to content

v0.1.0

Latest

Choose a tag to compare

@b-erdem b-erdem released this 08 May 20:47

Initial hex release.

A libcluster strategy that uses
HyParView for membership and connects
only the nodes in the local active view via Erlang distribution — i.e.
partial-mesh BEAM distribution.

Why

libcluster's built-in strategies all assume a full mesh: every discovered
node calls Node.connect/1 for every other discovered node. That works fine
to ~50–100 nodes; past that you start hitting net_kernel pressure, partial
partitions, and chatty heartbeats. HyParView gives each node a bounded
active view of log(N) + c peers — this strategy connects only those.

Install

def deps do
  [
    {:libcluster_hyparview, "~> 0.1"}
  ]
end

See the README
for the pre-flight checklist (-connect_all false), full topology config,
and integration notes with other libcluster strategies.

Companion projects

  • hyparview — the underlying
    membership protocol. Bumped to ~> 0.2 in this release.
  • hyparview_pubsub_bench
    benchmark suite comparing partial-mesh + flooding vs Phoenix.PubSub
    full-mesh. Documents the connection-count / failure-resilience trade-offs.