Render raises $100M at a $1.5B valuation

Read the announcement

Distributed Elixir Cluster

Distributed Elixir Cluster on Render with libcluster and Mix Releases

Why deploy Distributed Elixir Cluster on Render?

A distributed Elixir cluster is a group of Elixir/Erlang nodes connected over a network that can communicate and share state with each other. It solves the problem of horizontal scaling and fault tolerance by allowing multiple instances of an application to work together as a single system, enabling features like distributed process supervision, load balancing, and seamless failover.

This template pre-configures libcluster for automatic node discovery, sets up the required private networking between instances, and handles the release configuration needed for Elixir nodes to find each other—setup that typically requires careful coordination of environment variables, DNS strategies, and network topology. On Render, the private network and service discovery just work out of the box, so your nodes connect automatically without manual DNS or Kubernetes configuration. You skip the hours of debugging cluster formation issues and jump straight to a working distributed Phoenix app with one click.

What you can build

After deploying, you'll have a multi-node Elixir cluster running Phoenix where nodes automatically discover and connect to each other via libcluster. This lets you build features that rely on distributed state, cross-node pubsub, or process coordination without manually wiring up node discovery.

Key features

  • Libcluster Node Discovery: Uses libcluster library to automatically discover and connect Elixir nodes into a distributed cluster.
  • Phoenix Web Framework: Built on Phoenix framework providing real-time web capabilities and production-ready HTTP handling.
  • Mix Release Packaging: Leverages Elixir 1.9+ Mix releases for self-contained, compiled production deployments without requiring Elixir runtime installation.
  • Render Platform Integration: Pre-configured for deployment on Render's infrastructure with documented cluster setup for distributed Elixir nodes.

Use cases

  • Backend engineer deploys fault-tolerant real-time chat across multiple nodes
  • Startup CTO runs distributed background job processing with automatic failover
  • Game developer synchronizes player state across clustered Phoenix servers
  • DevOps team tests Elixir node discovery and clustering in managed infrastructure

Next steps

  1. Open the Phoenix application URL in your browser — You should see the default Phoenix welcome page or your app's homepage load successfully
  2. Test cluster connectivity by checking the /cluster or application logs — You should see multiple nodes connected and communicating, with libcluster reporting successful node discovery
  3. Configure environment variables for your production secrets in the Render dashboard — You should verify the app restarts and continues running without SECRET_KEY_BASE or database connection errors

Resources

Stack

elixir
phoenix
libcluster
mix releases
erlang

Tags

distributed systems
cluster
realtime
load balancing