[[modules]]
= Modules

[partintro]
--
This section contains modules responsible for various aspects of the functionality in Elasticsearch.  Each module has settings which may be:

_static_::

These settings must be set at the node level, either in the
`elasticsearch.yml` file, or as an environment variable or on the command line
when starting a node.  They must be set on every relevant node in the cluster.

_dynamic_::

These settings can be dynamically updated on a live cluster with the
<<cluster-update-settings,cluster-update-settings>> API.

The modules in this section are:

<<modules-cluster,Cluster-level routing and shard allocation>>::

    Settings to control where, when, and how shards are allocated to nodes.

<<modules-discovery,Discovery>>::

    How nodes discover each other to form a cluster.

<<modules-gateway,Gateway>>::

    How many nodes need to join the cluster before recovery can start.

<<modules-http,HTTP>>::

    Settings to control the HTTP REST interface.

<<modules-indices,Indices>>::

    Global index-related settings.

<<modules-network,Network>>::

    Controls default network settings.

<<modules-node,Node client>>::

    A Java node client joins the cluster, but doesn't hold data or act as a master node.
    
<<modules-scripting-painless,Painless>>::

    A built-in scripting language for Elasticsearch that's designed to be as secure as possible. 

<<modules-plugins,Plugins>>::

    Using plugins to extend Elasticsearch.

<<modules-scripting,Scripting>>::

    Custom scripting available in Lucene Expressions, Groovy, Python, and
    Javascript. You can also write scripts in the built-in scripting language, 
    <<modules-scripting-painless, Painless>>.

<<modules-snapshots,Snapshot/Restore>>::

    Backup your data with snapshot/restore.

<<modules-threadpool,Thread pools>>::

    Information about the dedicated thread pools used in Elasticsearch.

<<modules-transport,Transport>>::

    Configure the transport networking layer, used internally by Elasticsearch
    to communicate between nodes.

<<modules-tribe,Tribe nodes>>::

    A tribe node joins one or more clusters and acts as a federated
    client across them.
--


include::modules/cluster.asciidoc[]

include::modules/discovery.asciidoc[]

include::modules/gateway.asciidoc[]

include::modules/http.asciidoc[]

include::modules/indices.asciidoc[]

include::modules/network.asciidoc[]

include::modules/node.asciidoc[]

include::modules/plugins.asciidoc[]

include::modules/scripting.asciidoc[]

include::modules/snapshots.asciidoc[]

include::modules/threadpool.asciidoc[]

include::modules/transport.asciidoc[]

include::modules/tribe.asciidoc[]




