It also searches. Why are we paying for Oracle?

Dan Doughty | Oct 13, 2026 min read

I’ve heard versions of that question more than once. It’s the wrong question.

I led DevOps at a niche eDiscovery data warehouse. Engineering proposed replacing our Oracle databases with Elasticsearch to make a new product more profitable. Both products search, so on a slide they looked interchangeable.

They aren’t. A database like Oracle is a system of record. Elasticsearch is a search index. The difference shows up the moment several records have to change together.

In eDiscovery, that happens constantly:

→ A legal hold covers 50,000 documents. If the operation fails halfway, some documents are protected and some aren’t. A database rolls the whole thing back. Elasticsearch leaves you with a partial hold, and in litigation that can turn into a spoliation problem.

→ Production numbering has to be unique and gap-free across a set. That needs transactions. Elasticsearch only guarantees changes one document at a time.

→ A reviewer shouldn’t see a batch of coding decisions while it’s half applied. Databases isolate in-progress work. Elasticsearch doesn’t.

I went to an Elasticsearch conference to test my concerns against practitioners at large companies, and they confirmed them.

None of this makes Elasticsearch a bad product. It’s excellent at what it’s built for: fast full-text search, faceting, analytics. Plenty of serious platforms keep a relational database as the source of truth and feed Elasticsearch from it as a derived index that can always be rebuilt. That pattern works. Replacing the source of truth doesn’t.

Let me be clear: I’m not defending Oracle. In my opinion, they’re the worst vendor in the industry to be in bed with. I avoid them wherever I can and rip out their products wherever I find them. That job never ends, because they keep acquiring more.

But when being in bed with the devil is your critical differentiator, you don’t get to walk out on a whim. You have to understand exactly what that relationship gives you, and what could actually replace it.

So I didn’t just say no. I said that if cost was the real goal, PostgreSQL was a plausible path. But our niche depended on Oracle Text features, like leading-wildcard searches and terms under three characters, that Postgres didn’t match. And I didn’t know how Postgres would perform at 300 TB on our deduplicating storage. If the business was willing to give up those features, we’d need time to build a mock-up and test it before committing.

What I took from it:

  1. Ask what the data has to guarantee before asking which product stores it.
  2. “It also does X” is how expensive mistakes start. Compare guarantees, not feature lists.
  3. When you push back, bring a path you could say yes to, with its real cost attached.
  4. Hating a vendor isn’t a migration plan. Know what they’re giving you before you try to replace them.

Originally posted on LinkedIn. Join the conversation there.