[[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-discovery,Discovery and cluster formation>>:: How nodes discover each other, elect a master and form a cluster. <<modules-cluster,Shard allocation and cluster-level routing>>:: Settings to control where, when, and how shards are allocated to nodes. <<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, ad Groovy. 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-remote-clusters, Remote clusters>>:: Remote clusters are used in features that work by connecting across clusters on the transport layer. <<modules-cross-cluster-search, Cross cluster Search>>:: Cross cluster search enables executing search requests across more than one cluster without joining them and acts as a federated client across them. -- include::modules/discovery.asciidoc[] include::modules/cluster.asciidoc[] include::modules/gateway.asciidoc[] include::modules/http.asciidoc[] include::modules/indices.asciidoc[] include::modules/network.asciidoc[] include::modules/node.asciidoc[] :edit_url: include::modules/plugins.asciidoc[] include::modules/scripting.asciidoc[] include::modules/snapshots.asciidoc[] include::modules/threadpool.asciidoc[] include::modules/transport.asciidoc[] include::modules/remote-clusters.asciidoc[] include::modules/cross-cluster-search.asciidoc[]