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.

DimensionStrataFSElasticsearch
RuntimeSingle Go binaryJVM cluster (1–N nodes)
StorageSQLite + FTS5 + sqlite-vecApache Lucene + segment files
Cold start~1 s30–60 s
Warm hybrid query (10k chunks)< 100 ms< 100 ms
Warm hybrid query (10M chunks)200–400 ms100–200 ms
Multi-tenantOne DB per sourceNative (indices/aliases)
Embedding generationBuilt in (ONNX, local)External or paid ELSER
MCP server for AI agentsBuilt inPlugin / middleware
LicenseMITElastic 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.