elastic/elasticsearch
By the numbers
Quantitative snapshot of the Elasticsearch repository. Data collected on 2026-04-30 against main at commit 38c64ae3a5c.
Size
xychart-beta horizontal title "Source files by language" x-axis "Files" y-axis ["Java", "YAML", "Markdown", "Gradle", "Shell", "Asciidoc", "Groovy", "Python"] bar [28913, 1926, 2779, 564, 68, 40, 86, 5]
| Metric | Value |
|---|---|
| Java source files | 28,913 |
| Java lines of code (incl. blanks/comments) | ~5.75 million |
| YAML files (REST tests + config) | 1,926 |
| Markdown files | 2,779 |
| Asciidoc files | 40 |
| Gradle build scripts | 564 |
build.gradle projects |
353 (Gradle subprojects) |
| Shell scripts | 68 |
Repository scope
The repository is one of the largest publicly developed Java codebases. The server/ directory alone is 4,732 Java files; x-pack/ adds 9,760 production Java files and an even larger amount of tests.
| Top-level directory | Java files (production) |
|---|---|
server/src/main/java |
4,732 |
x-pack/.../src/main/java |
9,760 |
modules/ |
thousands across 30+ modules |
plugins/ |
hundreds across 18 plugins |
libs/ |
hundreds across 30+ libs |
Activity
| Metric | Value |
|---|---|
| Total commits | 99,221 |
| First commit | 2010-02-08 |
| Latest commit | 2026-04-30 |
| Commits in last 90 days | 3,904 |
| Unique authors in last 365 days | 341 |
| Tags (releases) | hundreds — newest are v9.3.3, v9.2.8, v8.19.14 |
Churn hotspots (last 90 days)
| Path | Commits |
|---|---|
muted-tests.yml |
1,243 |
x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/action/EsqlCapabilities.java |
168 |
server/src/main/resources/transport/upper_bounds/9.4.csv |
79 |
libs/simdvec/native/publish_vec_binaries.sh |
47 |
x-pack/plugin/stateless/src/main/java/org/elasticsearch/xpack/stateless/StatelessPlugin.java |
46 |
libs/native/libraries/build.gradle |
46 |
x-pack/plugin/esql-datasource-parquet/src/main/java/org/elasticsearch/xpack/esql/datasource/parquet/ParquetFormatReader.java |
41 |
x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/analysis/VerifierTests.java |
39 |
x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/CsvTests.java |
38 |
x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/planner/LocalExecutionPlanner.java |
37 |
muted-tests.yml is the central registry of currently-flaky tests that are skipped from CI; its very high churn reflects the project's "mute first, fix in a follow-up" policy rather than instability of one component.
The pattern below it is unambiguous: ES|QL and stateless are the most actively-evolving subsystems in the project right now.
Bot-attributed commits
A grep of Co-authored-by trailers in the last year finds only a handful of bot-authored or bot-co-authored commits (e.g. elasticsearchmachine, the version-bump bot). Day-to-day code is written by humans; automation is concentrated in CI rather than in commits.
Complexity hotspots
A few central files exceed 4,000 lines and are imported by hundreds of others:
server/src/main/java/org/elasticsearch/action/ActionModule.java— registers the entire action catalog.server/src/main/java/org/elasticsearch/node/Node.java— wires all node services through the injector.server/src/main/java/org/elasticsearch/index/shard/IndexShard.java— the per-shard lifecycle and operation entry point.server/src/main/java/org/elasticsearch/cluster/metadata/Metadata.java— top-level cluster metadata document.x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/analysis/Analyzer.java— ES|QL semantic analyzer.
Build scope
353 Gradle subprojects, three included builds (build-conventions, build-tools, build-tools-internal), and a custom plugin set under build-tools-internal/src/main/groovy covering distribution packaging, REST API spec validation, fixtures (Docker Compose), test runner customizations, and BWC builds for prior major versions.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.