<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/tsgsuhree" -->

---
title: Sometimes Postgres isn’t the Answer | daily.dev
description: Pomerium v0.31 replaces its Postgres-based storage backend with a custom file-based solution using Pebble (LSM-tree storage) and Raft consensus for clustering....
canonical: https://daily.dev/posts/tsgsuhree
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Sometimes Postgres isn’t the Answer | daily.dev
og:description: Pomerium v0.31 replaces its Postgres-based storage backend with a custom file-based solution using Pebble (LSM-tree storage) and Raft consensus for clustering....
og:url: https://daily.dev/posts/tsgsuhree
og:image: https://api.daily.dev/og/posts/tSGSuHREE.png
og:image:alt: Post cover image
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Sometimes Postgres isn’t the Answer

**[Pomerium](https://daily.dev/sources/pomerium)** · [@nickytonline](https://daily.dev/nickytonline) · 23 upvotes · 1 comments

## Summary

Pomerium v0.31 replaces its Postgres-based storage backend with a custom file-based solution using Pebble (LSM-tree storage) and Raft consensus for clustering. The change addresses operational challenges with managed Postgres instances at scale, including performance issues, configuration complexity, and lack of DBA expertise. The new approach uses Raft for leader election rather than full consistency, forwarding writes to a single leader while followers replicate state for failover. This provides easier management, comparable performance, and automatic recovery while relaxing consistency guarantees since lost data can be rebuilt from external sources.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.pomerium.com/blog/sometimes-postgres-isnt-the-answer>

## Community discussion

Top comments from developers on daily.dev.

**@nickytonline** · 2 upvotes

> TL;DR: Pomerium v0.31 introduces a new file-based Databroker backend using Pebble and Raft—offering clustered failover, fast reads, and easier ops. Postgres remains fully supported, but for teams without DBAs or facing scale pains, the file-based option strikes a pragmatic balance between performance and simplicity.

## Similar posts on daily.dev

- [WAL \+ S3: Lakebase storage for the era of agents](https://daily.dev/posts/wal-s3-lakebase-storage-for-the-era-of-agents-4trqspanr) · Neon · 25 upvotes · 2 comments
- [Just Use Postgres](https://daily.dev/posts/just-use-postgres-ueffslq3a) · Lobsters · 0 upvotes · 0 comments
- [A New Era for Managed Databases: Announcing Heroku Postgres Advanced](https://daily.dev/posts/a-new-era-for-managed-databases-announcing-heroku-postgres-advanced-eacmehfge) · Heroku · 0 upvotes · 0 comments
- [You can outgrow vanilla Postgres without abandoning Postgres](https://daily.dev/posts/you-can-outgrow-vanilla-postgres-without-abandoning-postgres-inzvfgbdt) · The New Stack · 2 upvotes · 0 comments

---

Tags: [#golang](https://daily.dev/tags/golang), [#authentication](https://daily.dev/tags/authentication), [#postgresql](https://daily.dev/tags/postgresql), [#distributed-systems](https://daily.dev/tags/distributed-systems)

[View this post on daily.dev](https://daily.dev/posts/tsgsuhree)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"DiscussionForumPosting","mainEntityOfPage":"https://daily.dev/posts/tsgsuhree","headline":"Sometimes Postgres isn’t the Answer","text":"Shared: Sometimes Postgres isn’t the Answer","url":"https://daily.dev/posts/tsgsuhree","datePublished":"2025-11-07T00:52:49.395Z","dateModified":"2025-11-07T00:53:29.824Z","author":{"@type":"Person","name":"Nick Taylor","url":"https://daily.dev/nickytonline","image":"https://media.daily.dev/image/upload/f_auto/v1649337888/avatars/q1zMpFsXv","interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"EndorseAction"},"userInteractionCount":1180}},"image":"https://media.daily.dev/image/upload/s--VDukGCjf--/f_auto/v1722860399/public/Placeholder%2002","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":23},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":1}],"sharedContent":{"@type":"WebPage","url":"https://api.daily.dev/r/rOCCwzgEr"},"comment":[{"@type":"Comment","text":"TL;DR: Pomerium v0.31 introduces a new file-based Databroker backend using Pebble and Raft—offering clustered failover, fast reads, and easier ops. Postgres remains fully supported, but for teams without DBAs or facing scale pains, the file-based option strikes a pragmatic balance between performance and simplicity.","datePublished":"2025-11-07T00:54:01.130Z","url":"https://daily.dev/posts/tSGSuHREE#c-wjGNUE7nq","author":{"@type":"Person","name":"Nick Taylor","url":"https://daily.dev/nickytonline","image":"https://media.daily.dev/image/upload/f_auto/v1649337888/avatars/q1zMpFsXv"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":2}}],"isPartOf":{"@type":"WebPage","url":"https://daily.dev/squads/pomerium","name":"Pomerium"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Pomerium","item":"https://daily.dev/squads/pomerium"},{"@type":"ListItem","position":3,"name":"Sometimes Postgres isn’t the Answer"}]}
```

