Two tools, two scales
Elasticsearch is built for shared, large-scale, cluster-managed search. StrataFS is built for per-user, per-team, single-binary semantic search. The architectural choices come straight from those starting points.
| Dimension | StrataFS | Elasticsearch |
|---|---|---|
| Runtime | Single Go binary | JVM cluster (1–N nodes) |
| Storage | SQLite + FTS5 + sqlite-vec | Apache Lucene + segment files |
| Cold start | ~1 s | 30–60 s |
| Warm hybrid query (10k chunks) | < 100 ms | < 100 ms |
| Warm hybrid query (10M chunks) | 200–400 ms | 100–200 ms |
| Multi-tenant | One DB per source | Native (indices/aliases) |
| Embedding generation | Built in (ONNX, local) | External or paid ELSER |
| MCP server for AI agents | Built in | Plugin / middleware |
| License | MIT | Elastic License v2 (source-available) |
The hybrid-search story
Elasticsearch supports hybrid search well — bm25 plus knn plus RRF, or weighted fusion via script_score. It works. It also takes meaningful query engineering. StrataFS does hybrid in a single SQL statement with three configurable weights. The defaults work for code+docs corpora; tuning is one config change.
Practical consequence: a new “we need hybrid search” project takes hours in StrataFS and days–weeks in Elasticsearch. Extending an existing Elasticsearch deployment to add vectors is faster than adopting a new tool entirely.
The agent integration story
Elasticsearch was designed for human search. Wiring it to an AI agent as an MCP tool means writing a middleware that bridges JSON-RPC to ES query DSL, shapes results for the agent’s context window, and handles pagination/truncation. It’s a few hundred lines of code that you’ll then maintain.
StrataFS ships with a native MCP server. The tool catalog is four named entries. The response shapes are pre-trimmed for LLM context. Zero glue.
The operational story
Elasticsearch ops is a known discipline. You’ll deal with shards, replicas, JVM heap, GC pauses, snapshot lifecycle, ILM, and security plugins. The bench cost of running Elastic at non-trivial scale starts at one engineer’s part-time attention.
StrataFS ops is rsync. Backup is “copy the SQLite files”. Upgrades are npm i -g stratafs@latest. There is no cluster.
When the answer is “both”
Many teams end up running both: Elasticsearch as the shared service for cross-team and analytics workloads, StrataFS per-developer for codebase semantic search and agent retrieval. They don’t compete; they cover different points on the developer-experience spectrum.
For the longer narrative — including a decision tree — see our Elasticsearch vs. StrataFS article on the blog.