| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | [[modules-tribe]]== Tribe nodeThe _tribes_ feature allows a _tribe node_ to act as a federated client acrossmultiple clusters.The tribe node works by retrieving the cluster state from all connectedclusters and merging them into a global cluster state. With this informationat hand, it is able to perform read and write operations against the nodes inall clusters as if they were local.The `elasticsearch.yml` config file for a tribe node just needs to list theclusters that should be joined, for instance:[source,yaml]--------------------------------tribe:    t1: <1>        cluster.name:   cluster_one    t2: <1>        cluster.name:   cluster_two--------------------------------<1> `t1` and `t2` are arbitrary names representing the connection to each    cluster.The example above configures connections to two clusters, name `t1` and `t2`respectively.  The tribe node will create a <<modules-node,node client>> toconnect each cluster using <<multicast,multicast discovery>> by default. Anyother settings for the connection can be configured under `tribe.{name}`, justlike the `cluster.name` in the example.The merged global cluster state means that almost all operations work in thesame way as a single cluster: distributed search, suggest, percolation,indexing, etc.However, there are a few exceptions:* The merged view cannot handle indices with the same name in multiple  clusters. By default it will pick one of them, see later for on_conflict options.* Master level read operations (eg <<cluster-state>>, <<cluster-health>>)  will automatically execute with a local flag set to true since there is  no master.* Master level write operations (eg <<indices-create-index>>) are not  allowed. These should be performed on a single cluster.The tribe node can be configured to block all write operations and allmetadata operations with:[source,yaml]--------------------------------tribe:    blocks:        write:    true        metadata: true--------------------------------The tribe node can also configure blocks on indices explicitly:[source,yaml]--------------------------------tribe:    blocks:        indices.write: hk*,ldn*--------------------------------When there is a conflict and multiple clusters hold the same index, by defaultthe tribe node will pick one of them. This can be configured using the `tribe.on_conflict`setting. It defaults to `any`, but can be set to `drop` (drop indices that havea conflict), or `prefer_[tribeName]` to prefer the index from a specific tribe.
 |