ClusterHelper - Library map role of nodes to node's name for building a dynamic Elixir cluster on K8s

ClusterHelper work like a registry for mapping a role(or Id if needed) to node name of Elixir for call rpc or do other things inside cluster. The library is built on top of :syn lib.

Roles of each node will be synced & cached on each node (on Ets table) in cluster. The library solve problem when work with a dynamic Elixir cluster on K8s (IP/Hostname is dynamic, changed after every time pod is restarted) or on LAN when you need add/remove node in runtime.

ClusterHelper doesn’t help you for auto join a node to cluster, you need to use other library like Libcluster for that.

Source code is available on Github and package on Hex.

One more thing! Libcluster, EasyRpc & ClusterHelper are help us a lot to build a dynamic Elixir cluster on K8s and still get benefit from both: Fast to develop in Elixir(benefit from dynamic type + Rpc in internal cluster), easy to deploy & scalable of K8s.

Thanks for reading!

Source code repo

1 Like