A seed node is an already-running ScyllaDB node that gives a joining node its first contact with the cluster. The joining node uses it to discover cluster topology and membership, then receives data for the token ranges it will own. section 2.1.3 section 9.1.2
A joining node uses a seed in this sequence:
- Configure the seed address when starting the new node; use a hostname or IP address. section 9.1.2
- Contact the seed to learn other nodes and their positions on the hash ring. section 9.1.2
- Exchange membership information through gossip, then receive streamed data while joining. section 2.1.3
- Stop relying on the seed after joining; normal cluster gossip provides ongoing membership information. section 9.1.2
Joining a Docker cluster
Start a second node with the first node as its seed: docker run --name scylla-2 --hostname scylla-2 --network scylla-network -d -p 9242:9042 -p 19242:9042 scylladb/scylla:5.4 --seeds=scylla-1 --reactor-backend=epoll. Monitor nodetool status as the node changes from UJ (up and joining) to UN (up and normal). section 2.5
# seed_provider class_name is saved for future use.
# A seed address is mandatory.
seed_provider:
# The addresses of hosts that will serve as contact points for
# the joining node. It allows the node to discover the cluster
# ring topology on startup (when joining the cluster). Once
# the node has joined the cluster, the seed list has no function.
- class_name: org.apache.cassandra.locator.SimpleSeedProvider #1
parameters:
# In a new cluster, provide the address of the first node.
# In an existing cluster, specify the address of at least one
# existing node. If you specify addresses of more than one
# node, use a comma to separate them.
# For example: "<IP1>,<IP2>,<IP3>"
- seeds: "127.0.0.1" #2
The seed_provider configuration shows how contact points are declared, including multiple comma-separated addresses and the first-node exception. section 9.1.2

