Hi, my colleagues and I at Supabase have worked on libcluster_postgres, a libcluster custom strategy that utilizes PostgreSQL LISTEN and NOTIFY to handle dynamic clustering. This library came out of a requirement for a more reliable discovery method that was cloud agnostic.
By default, the node’s cookie is used as the channel identifier, but you can customize it to anything you want, so long as it is a valid PostgreSQL identifier.
This clustering strategy is being used across 3 different products written in Elixir - Realtime, Supavisor, and Logflare.
I’ve used Redis before to do this job, but since there’s almost zero chance I’ll have to build a clustered system that doesn’t contain postgres I really like this solution.