OpenSearch 3.8: A Fork That Grew Into Its Own Search and Observability Stack
Open source distributed and RESTful search engine. OpenSearch is an open-source, enterprise-grade search and observability suite that brings order to unstructured data at scale.
At a glance
- What is it?
- OpenSearch is an Apache-2.0 licensed search engine and observability suite for unstructured data at scale. This review covers its architecture, setup, limitations, and how it differs from Elasticsearch.
- Who is it for?
- Adopt OpenSearch if you need a permissively licensed, community-governed search engine and are willing to manage your own cluster operations. Skip it if you require proprietary Elastic features like advanced security or machine learning plugins.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Java, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What OpenSearch Actually Solves
OpenSearch addresses a specific gap: a fully open-source search engine that enterprises can run without paying for a proprietary license. It is a fork of Elasticsearch, created to keep the codebase under Apache-2.0 after Elastic changed its licensing. The README describes it as an "enterprise-grade search and observability suite that brings order to unstructured data at scale." That means it handles full-text search, log analytics, and alerting, all from a single distributed system. The intended audience is teams that run their own infrastructure, whether on-premises or in the cloud, and want to avoid vendor lock-in. It is not a managed service; you operate the cluster yourself. The project is governed by the OpenSearch Foundation under the Linux Foundation, which shows a commitment to neutral stewardship. For engineers, the practical value is that you get a search engine with a familiar REST API, but with the freedom to modify and redistribute the code.
How the Engine Works Under the Hood
The repository is written in Java, and the architecture follows the Lucene-based model inherited from Elasticsearch. Data is indexed into shards, which are distributed across nodes in a cluster. Each document is stored as JSON and queried via a RESTful API. The README does not go deep into internals, but the project structure and release history reveal some key points. OpenSearch maintains two major version lines: 2.x and 3.x. The 3.8.0 release, dated 2026-08-05, suggests active development on the newer line, while 2.19.6 from July 2026 shows continued maintenance for legacy users. The engine handles both search and observability workloads, meaning it can ingest time-series data like logs and metrics, then query and visualize them. The observability part likely uses the same indexing engine but with different mappings and aggregation patterns. The documentation, linked from the homepage, would clarify exact data flows, but the repository itself emphasizes the distributed nature: shards are replicated for fault tolerance, and the cluster coordinates queries across nodes. This is standard for Lucene-based systems, but it means you need to understand shard sizing and node roles to get good performance.
Getting OpenSearch Running: Commands and Config
The README does not include installation instructions, but the project website and downloads page are the primary entry points. Based on the repository layout, you can build from source using Gradle, which is typical for Java projects. The release tags like 3.8.0 correspond to source tarballs and pre-built binaries available on the downloads page. For a quick start, you would download the distribution, extract it, and run the `bin/opensearch` script on Unix or `bin/opensearch.bat` on Windows. Configuration is done via `config/opensearch.yml`, where you set cluster name, node roles, network host, and discovery settings. For a single-node cluster, you typically set `discovery.type: single-node` and `network.host: 127.0.0.1`. The REST API then listens on port 9200 by default. You can test it with `curl http://localhost:9200`. The documentation, linked from the homepage, covers more advanced setup like multi-node clusters, security plugins, and snapshot repositories. The README itself is minimal, so you must rely on the official docs for operational details. That is a limitation: the repository does not teach you how to run it, only where to find the resources.
A Real Limitation: The 2.x to 3.x Migration Gap
One genuine limitation is the coexistence of two major versions. The 2.19.6 release, dated 2026-07-06, is still being maintained, which is good for stability, but it creates confusion. If you are on 2.x, upgrading to 3.x may involve breaking changes, and the README does not document what those changes are. You would need to read the release notes or migration guides on the website. Another limitation is that OpenSearch, as a fork, does not include all Elasticsearch features. The README explicitly states that it includes Apache-licensed Elasticsearch code, but Elasticsearch B.V. is not the source of that other code. That means some plugins and features that are proprietary in Elasticsearch, like certain machine learning or security capabilities, may be absent or require separate installation. For teams that rely on those features, OpenSearch is the wrong tool. Also, because it is a community-driven project, the pace of innovation may lag behind commercial alternatives. If you need cutting-edge features quickly, you might find the release cycle slower.
Alternative: Elasticsearch and the Licensing Divide
The most direct alternative is Elasticsearch itself, from which OpenSearch is derived. The key difference is licensing: Elasticsearch uses the Elastic License or SSPL for some parts, which restricts how you can offer it as a service. OpenSearch is Apache-2.0, so you can use, modify, and redistribute it without those restrictions. That is the core trade-off. Elasticsearch has more commercial backing and a larger ecosystem of plugins, but it comes with licensing constraints. Another alternative is Apache Solr, which is also Lucene-based and Apache-2.0, but it has a different API and is more focused on search than observability. Solr does not have the same built-in observability features that OpenSearch claims. For observability specifically, you might consider a time-series database like InfluxDB, but that is a different data model. The choice comes down to whether you value the permissive license and community governance over the commercial support and feature set of Elasticsearch.
Maintenance and Upgrade Costs
The maintenance cost is significant because you are running a distributed system. The README lists testing and release management documents, indicating a mature process, but that does not reduce your operational burden. You need to handle backups, snapshots, upgrades, and cluster health. The project provides security reporting via email, which is good, but you must monitor for vulnerabilities yourself. The license is Apache-2.0, which is permissive and does not impose obligations beyond attribution. That means you can embed OpenSearch in commercial products without open-sourcing your code. However, the trademark is owned by LF Projects, LLC, so you cannot use the OpenSearch name in a way that suggests endorsement. The upgrade path between minor versions is likely straightforward, but major version jumps require planning. The existence of both 2.x and 3.x lines means you have to decide which to adopt. For new projects, 3.x is the future, but 2.x has a longer track record. The documentation is the only source of truth for upgrade procedures, and it is not in the repository, so you must rely on external resources.
Who Should Adopt and What to Verify First
Adopt OpenSearch if you want a search engine that you can fully control and customize, and you have the engineering capacity to operate a cluster. It is a solid choice for log analytics, full-text search, and observability in a single stack. Do not adopt it if you need the proprietary features of Elasticsearch, such as advanced security or machine learning, unless you can find compatible plugins. Before you commit, verify three things. First, check that your existing clients and libraries support the 3.x API, since it may differ from 2.x. Second, review the migration guide on the documentation site to understand what breaks between versions. Third, test the observability features against your workload, because the README claims broad capability but does not prove it. The project is active, with regular releases, but that also means you must keep up with updates. The Apache-2.0 license is a clear advantage, but the trademark restrictions mean you cannot brand your product as OpenSearch without permission. In short, OpenSearch is a viable, open alternative, but it demands operational maturity.
Editorial conclusion
Adopt OpenSearch if you need a permissively licensed, community-governed search engine and are willing to manage your own cluster operations. Skip it if you require proprietary Elastic features like advanced security or machine learning plugins. Before committing, verify that your client libraries and plugins support the 3.x API, since the 2.x line is still maintained for legacy compatibility.
Community notes