Ashvara
Blog/Engineering
Engineering

Just use Postgres: one database instead of five

Postgres plus a few extensions now covers search, vectors, queues, documents, and jobs. Add a specialized system only when a real bottleneck forces it.

S
Sahil Jain
Engineering · Ashvara
Jul 21, 2026
5 min read
Just use Postgres

For most products, the right database architecture in 2026 is one Postgres instance doing nearly everything - search, vectors, queues, documents, caching, scheduled jobs - and you add a specialized system only when a measured, proven bottleneck forces it. The reflex to reach for a separate search engine, a vector database, a message queue, and a document store the moment a product gets interesting is usually a mistake: it multiplies what you have to operate, back up, secure, and keep consistent, in exchange for scale you probably won't hit for years. Postgres plus a handful of battle-tested extensions covers the same ground with one thing to run and transactions that span all of it. Start there. Extract later, if ever.

Why this matters now

The "just use Postgres" argument used to be a nice idea with caveats. In 2026 the caveats mostly evaporated, because the extension ecosystem matured to the point where Postgres genuinely covers workloads that used to demand dedicated systems. It can now replace, for a large majority of products, the specialized databases teams reach for by habit - and the algorithms in those extensions match their specialized counterparts, not toy versions of them.

The cost of the alternative - "polyglot persistence," a different database for every workload - is easy to underestimate at the whiteboard and brutal in production. Every additional datastore is another thing to provision, monitor, patch, back up, secure, and (the killer) keep consistent with the others. Data that lives in five systems has no transactions across them, so you inherit a permanent job of syncing and reconciling. One database makes that whole category of problem disappear.

What one Postgres can now do

Here's the ground a single Postgres covers, and the specialized system each capability displaces.

Diagram with Postgres at the center - one thing to operate, back up, and keep consistent - surrounded by the capabilities it absorbs via extensions: full-text search (tsvector / BM25) replacing a search engine, vector search (pgvector) replacing a vector database, queues and pub/sub (SKIP LOCKED, LISTEN/NOTIFY), documents (JSONB) replacing a document database, cache and time-series (UNLOGGED tables, TimescaleDB), and scheduled jobs (pg_cron) replacing a cron service; a rule band says start with Postgres doing everything and extract a specialized system only when a measured, proven bottleneck forces it, not for imagined scale

  • Full-text search - tsvector, trigram indexing, ranking, and BM25 extensions cover the search-engine use case for most apps.
  • Vector search - pgvector makes Postgres a real vector database for semantic search and RAG, no separate service required.
  • Queues and pub/sub - SELECT ... FOR UPDATE SKIP LOCKED gives you a solid job queue, and LISTEN/NOTIFY gives you pub/sub - the message-broker use case for most workloads.
  • Documents - JSONB gives you schemaless document storage with indexing, so you get document-database flexibility inside a relational database.
  • Cache and time-series - UNLOGGED tables for fast ephemeral data, and time-series extensions when you need them.
  • Scheduled jobs - pg_cron runs periodic jobs in the database itself, replacing a separate scheduler.

The point isn't that Postgres is best-in-class at each of these - a dedicated search cluster will beat it at massive scale. The point is that for the vast majority of products, Postgres is good enough at all of them, and "good enough in one system" beats "best-in-class across five" once you count the operational bill.

The mechanism: complexity is the real cost

Why does consolidation win? Because the dominant cost of a data architecture usually isn't raw performance - it's operational surface and consistency.

Every datastore you add is another thing to run at 3am, another backup to test, another security surface, and another copy of the truth to keep in sync. The most expensive database is the second one.

One Postgres means one backup story, one security model, one place to reason about your data - and, crucially, transactions that span your whole workload. Writing a record, enqueuing a job, and updating a search index can be one atomic operation instead of a distributed dance you have to make eventually-consistent by hand. That's not a minor convenience; it removes an entire class of bug.

Our opinion

Our take: default to one Postgres, and treat every additional datastore as a cost you have to justify with a real, measured bottleneck. The failure mode we see most often isn't a team that outgrew Postgres - it's a small team that adopted a five-database architecture on day one "to be ready to scale," and spent its energy operating infrastructure instead of building product. You can always extract a specialized system later, when profiling shows a specific limit; you can rarely put the toothpaste of premature complexity back in the tube.

The honest caveat: this isn't dogma. At genuine extreme scale, or for a workload with a hard specialized requirement, a dedicated system earns its place - and you'll know, because you'll have the numbers. But that's a decision you make from evidence, not a default you reach for from habit. This is the same measure-first discipline behind controlling cloud costs and not needing a vector database: solve the problem you actually have, not the one you imagine.

How Ashvara helps

We design and build backends, and we start from a bias toward boring, consolidated infrastructure that a small team can actually operate: one Postgres doing the search, vectors, queues, and documents your product needs, with the extension setup done right and the extraction path clear for the day a real bottleneck shows up. You get a system that's simple to run now and ready to grow when the evidence says so.

If you're choosing a data architecture - or drowning in one that's too complex for your team - that's our backend and API development work. Talk to us and we'll help you ship on infrastructure you can actually operate.

Source: Tiger Data - It's 2026, Just Use Postgres and the Postgres extension ecosystem (pgvector, full-text/BM25, SKIP LOCKED queues, JSONB, pg_cron) replacing specialized systems for most workloads.

Share this article
S
Sahil Jain

Founder at Ashvara, a studio that builds software end to end - mobile, web, AI, and the systems behind them. Writes about shipping products that last.

Building something? Let's talk.