Replicate to InfluxDB 3 Enterprise

Use EDR to replicate data between InfluxDB 3 Enterprise instances—edge to regional relay to central hub, or a direct edge-to-central hop. This guide covers the Enterprise-to-Enterprise topology end to end. For general config and CLI flag reference, see Configuration file reference.

Prerequisites

  • InfluxDB 3 Enterprise on the upgraded storage engine (the default for new clusters on 3.11+; on 3.10.x pass --upgrade-pacha-tree) on every node.
  • The influxdb3-edr binary installed on every node that sources or receives data. See Install EDR.
  • A token store directory with auth and write tokens.
  • Sufficient WAL retention on each source node. See Size WAL retention.

Topology shapes

Every EDR deployment, however large, is composed of the same three node shapes:

RoleWhat its config has
Upstream-only (edge)—a pure sourcea downstream: (or downstreams:) block
Regional relay—receives and forwardsboth upstreams: and downstream:
Downstream-only (hub)—a pure sinkan upstreams: list

A node with both downstream (or downstreams) and upstreams is a regional hub: it receives from edges and forwards on. There’s no architectural depth limit; practical deployments are 2-3 levels.

1. Create a token store

mkdir -p /etc/edr/secrets

# Auth token—identifies this source to the destination.
openssl rand -hex 32 > /etc/edr/secrets/my-auth-token

# Write token—used by the destination's EDR agent to write into its
# local InfluxDB. Typically the destination's InfluxDB admin/operator token.
cp /path/to/destination-write-token /etc/edr/secrets/dest-write-token

2. Configure the source node

# /etc/edr/config.yaml -- source node
name: "factory-floor-01"

downstream:
  name: "regional-hub"
  address: "http://hub.internal:9090"
  auth_token: "my-auth-token"         # name of file in token store
  historic_fill:
    mode: none                       # required -- none | full | since
  comms:
    interval_secs: 10
    degraded_after: 3
    unhealthy_after: 6
  retry:
    initial_backoff_secs: 1
    max_backoff_secs: 30
    multiplier: 2

3. Configure the destination node

# /etc/edr/config.yaml -- destination node
name: "regional-hub"

upstreams:
  - name: "factory-floor-01"
    auth_token: "factory-01-auth"      # verifies the source's identity
    write_token: "dest-write-token"    # used to write into local InfluxDB
  - name: "factory-floor-02"
    auth_token: "factory-02-auth"
    write_token: "dest-write-token"

To build a regional relay (receives from edges and forwards to a central hub), give one node both an upstreams: list and a downstream: block.

4. Start the agents

# Source node:
influxdb3-edr \
  --config /etc/edr/config.yaml \
  --data-dir /var/lib/influxdb3 \
  --token-store /etc/edr/secrets \
  --listen 0.0.0.0:9090 \
  --state-location /var/lib/edr/state \
  --poll-interval-ms 1000

# Destination node:
EDR_WRITE_ENDPOINT="http://localhost:8181" \
influxdb3-edr \
  --config /etc/edr/config.yaml \
  --data-dir /var/lib/influxdb3 \
  --token-store /etc/edr/secrets \
  --listen 0.0.0.0:9090 \
  --state-location /var/lib/edr/state

5. Verify

Open http://127.0.0.1:9091/ui—the embedded UI shows topology, health, replication lag, and data-flow metrics. The UI and /metrics bind to loopback by default (--observability-listen); expose them deliberately if you need off-host access. See Monitor EDR.

Next


Was this page helpful?

Thank you for your feedback!