N
Operations

Multi-node Cluster

Run N Funnel nodes — libcluster auto-discovers, PubSub fans out.

How it works

With `libcluster` configured (Gossip in dev, DNS in k8s), nodes auto-discover and connect. `Phoenix.PubSub` is cluster-aware out of the box, so live dashboards on node A see ingest from node B. Ingestion sharding hashes `project_id` to a node; an ingress request that hits the wrong node forwards via `:rpc.call`. Sharding is optional — default is every node accepts.

What this lets you do

  • Horizontally scale ingestion past a single box
  • Rolling deploys with zero ingestion gaps
  • Live dashboards work across nodes — no sticky sessions needed
  • Single Postgres, single source of truth

Get it running

  1. 1 Set `libcluster` topology in `config/runtime.exs`
  2. 2 Start more nodes — they auto-join
  3. 3 Open `Cluster` to see topology and routing

Code examples

# config/runtime.exs
config :libcluster,
  topologies: [
    funnel: [
      strategy: Cluster.Strategy.Kubernetes.DNS,
      config: [
        service:     "funnel-headless",
        application_name: "funnel"
      ]
    ]
  ]
Where to find it
/app/p/:org/:project/cluster
Open in app →