Crunchy Data Blog
crunchydata.com · Company blog · on HN since 2016
Crunchy Data's blog, from a Postgres provider, offers tips, performance findings, and features for PostgreSQL and its analytics integrations.
What HN saysHN commenters recommend Crunchy Data as an enterprise Postgres provider and note the company's incentive to do a lot with Postgres alone.
187HN people shared it
81linked it in comments
595stories submitted
7.6Kstory points
3 months agolast shared
2016people per year2026
Most-shared posts
- 1Homepage9 people · first shared 2017
- 2Postgres support for JSON is 10 years old7 people · 17 points · first shared 2022 · 1 comments on HN
- 3Postgres Tips and Tricks6 people · 54 points · first shared 2022 · 2 comments on HN
- 4PostgreSQL Benchmarks: Apple ARM M1 MacBook Pro 20206 people · 42 points · first shared 2020 · 9 comments on HN
- 5Control Runaway Postgres Queries with Statement Timeout6 people · 26 points · first shared 2020 · discussion on HN
- 6Real World Performance Gains with Postgres 17B-Tree Bulk Scans6 people · 19 points · first shared 2024 · discussion on HN
- 7Message Queuing Using Native PostgreSQL6 people · 1 points · first shared 2022 · discussion on HN
- 8Crunchy Data Warehouse: Postgres with Iceberg for High Performance Analytics5 people · 40 points · first shared 2024 · 2 comments on HN
- 9PostgreSQL Monitoring for App Developers5 people · 38 points · first shared 2020 · discussion on HN
- 10PostgreSQL BRIN Indexes: Big Data Performance with Minimal Storage5 people · 29 points · first shared 2019 · discussion on HN
- 11Why PostgreSQL 13 is a Lucky Release5 people · 27 points · first shared 2020 · discussion on HN
- 12Logical Replication from Postgres to Iceberg5 people · 22 points · first shared 2025 · 1 comments on HN
- 13SQL Comments Trick Improves Postgres Traceability5 people · 12 points · first shared 2022 · discussion on HN
- 14The Integer at the End of the Universe: Integer Overflow in PostgreSQL5 people · 11 points · first shared 2023 · discussion on HN
- 15From Crazy Idea to Postgres in the Browser5 people · 4 points · first shared 2022 · discussion on HN
What HN people wrote when they linked it
verdverm · 2022-08-10
https://www.crunchydata.com/ This group deals in enterprise grade postgres only. Why would someone even consider replacing them with Supabase?
The main problem with adoption, I suspect, is that their self-hosting story is not great and their per-app pricing is not that friendly beyond a handful of apps. Might be one of the reasons their growth is no longer accelerating. They seem more focused on adding product lines than in making one really great.
Also, their main interfaces are "click buttons in a UI" or "write SQL". Why is this something a Rails, Django, or devs who code should consider changing too?
np_tedious · 2022-02-09
I have nothing to disagree with here, but it's worth noting that his company Crunchy Data are themselves a postgres provider. So they, more then most, have the chops and incentive to do a great deal in postgres alone.
https://www.crunchydata.com/
brightball · 2023-01-31
Best option is https://www.crunchydata.com/ IMO.
gvkhna · 2023-10-08
Great to hear, a benchmark against trigram searching with gin index would also be great. There are multiple ways to do full text search with postgres and they’re all insanely fast and memory efficient. Benchmarking various methods for comparison would be helpful.
https://www.crunchydata.com/blog/postgres-full-text-search-a-search-en…
craigkerstiens · 2023-03-21
The Art of PostgreSQL is great and super thorough. Knowing the author I can't fault him on price for the effort he put into it.
But also your point of students and developers in low income countries completely understand that side. It's a shameless plug but we built our Postgres playground with tutorials on a number of topics which are completely free aiming to help target some of that audience - https://www.crunchydata.com/developers/tutorials
metadat · 2022-09-25
Pretty amazing to get all of PHP working in WASM. Next maybe we can get full MySQL, too (like the Crunchy Postgres port [0] [1]).
Would also love to see it for Java, Go, Perl, Sed, and Awk :)
What if Intelli-J could run in the browser? Yes please.
I bet some of these even already exist. What a time to be alive, 15 years ago I'd never have guessed Javascript could evolve into this!
[0] https://www.crunchydata.com/blog/crazy-idea-to-postgres-in-the-web-bro…
[1] https://news.ycombinator.com/item?id=32498435 (August 22, 2022; 814 points, 172 comments)
^ n.b. Submitted by @samwillis
bradgessler · 2022-08-25
Would it be OK if service like https://www.crunchydata.com was integrated with Fly?
benschwarz · 2022-08-24
My company moved a 600GB postgres db to crunchydata (https://www.crunchydata.com), the process was super smooth. In fact, it went so well that I agreed to a quick case study: https://www.crunchydata.com/case-studies/calibre.
We're currently using Heroku for app hosting, while evaluating fly.io, render.com and railway.app. All three have had exceptional reviews from other customers and differ slightly on their service offerings and setups. All seem like viable alternatives so far!
mrkurt · 2021-09-22
Our Postgres is pretty great up to about 500GB. We'll be pushing that higher over the next year, but we have several customers using Crunchy Data (https://www.crunchydata.com/products/crunchy-bridge/) in conjunction with their Fly.io apps.
We intentionally give you super user access to your DBs so it's easy to migrate or spin up your own replicas. Our bet is that _most_ people won't outgrow our Postgres but having an escape hatch is still very comforting.
We previously worked on Compose.com. We, at least, understand how to manage huge databases when the time comes.
rattray · 2020-10-08
Thanks! Agreed that's much less concerning.
Congrats on the job change to https://www.crunchydata.com/ btw! Hope you're able to continue your community-benefiting work there.
everdev · 2019-04-27
A nice list but I'd also add row-level security (RLS): https://info.crunchydata.com/blog/a-postgresql-row-level-security-prim…
It's amazing how much effort we put into restricting access on the server, but ignore user roles on the data layer.
drewda · 2019-04-12
Some other companies that specialize in Postgres support/hosting/commercial tooling:
- https://www.crunchydata.com/
- https://www.enterprisedb.com/
pgaddict · 2017-10-16
Sure you can. TL works for Crunchy Data [https://www.crunchydata.com/] and I suppose he gets involved in solving customer issues.
karmelapple · 2024-05-31
We do, although we're in the middle of moving our entire Heroku Postgres spend over to Crunchy Data [1].
We were getting close to one of the big jumps on the standard pricing of Heroku Postgres, and we would have had to basically double our monthly cost to lift the max data we could store from 1.5TB to 2.0TB. On Crunchy Data, that additional disk space will be like 1% more rather than 100% more.
While investigating Crunchy, I ran some benchmarks, and I found Crunchy Bridge Postgres to be running 3X faster than Heroku Postgres.
Heroku seems to be working on some interesting new things, but I feel burned by the subpar performance and lack of basically any new features over many years. I don't know if the new Aurora-based database will be faster than Crunchy, but the benchmarks they're talking about sound like they're finally about to catch them. But we also have better features on Crunchy, too, such as logical replication. Logical replication is still not available on Heroku.
The experience for deploying apps and having add-ons is still pretty easy, but we'll see how that improves. HTTP2 support is still in beta.
1. https://www.crunchydata.com
asguy · 2023-04-23
I think you're projecting an implementation of a queue in Postgres, which isn't how most people implement these things. [0] We're not doing table level locks, or creating contention with multiple queue producers or consumers, and they're not "one typo away from disaster in prod".
To do this right, you're using row level locking e.g. SELECT FOR UPDATE/SKIP LOCKED [1], and hopefully you're already using idle_in_transaction_session_timeout to deal with total consumer failures. A properly designed queue in Postgres runs more-or-less in parallel, and supports (really fantastic features like) atomic row locks across all resources needed to serve the queue request.
If you need extremely long consumer timeouts, it's also totally fine to use RLLs in addition to state on the job itself.
[0] - https://www.crunchydata.com/blog/message-queuing-using-native-postgres…
[1] - https://www.2ndquadrant.com/en/blog/what-is-select-skip-locked-for-in-…
rektide · 2022-12-25
Both of the kubernetes operators are extremely good. Zalando's uses Patroni for HA, and CrunchyData's has their own HA impl. Both have great backup systems built in.
> Any way the Postgres DB can be setup in a fire and forget setup and scaled just by adding new nodes for read and write?
Generally I'd reply yes and no, yes, adding readers is pretty easy with these operators. No, postgres is generally single writer.
But the CrunchyData k8s operator (pgo) has active-active mode. I dont know much scalability this really buys, since ultimately everyone needs to soak the write load. There is sharding too, built into postgres, but I count myself as blessed that so far straight up verticle scaling has tackled every problem I've ever had and sharding hasnt beem required. Anyways here's a post on setting up active active in pgo, https://www.crunchydata.com/blog/multi-cluster-postgres-federation-on-…
One thing missing from your post is any information on workload. What kind of data are you storing, what kind of use are you expecting,... it's hard to make recommendatuons in the abstract.
OrvalWintermute · 2021-09-06
Postgresql can do everything I need, but not everything I want, and apologies to mysql fans, but I refuse to touch it.
And, I think over the years they have been such an awesome community that has helped me irregularly when I popped into IRC every year or two for a problem I was having. https://github.com/davidfetter ; https://github.com/RhodiumToad ; https://github.com/bmomjian - you are great peeps!
What I would like to see are more security usability enhancements over and above what you find in https://www.crunchydata.com/products/hardened-postgres/
Security Enhancements List:
Attack Resistance
Better protections for the DBMS itself in assume compromised scenarios, or malicious users
Customized implementations per compliance/security regime
Accelerators for various security configurations
Self-audit, self-secure
Functionality Enhancements List:
Continuous Sync Postgres to other serious DB (not a one-way sync, not a DB move)
brandur · 2020-12-01
(Author here.) I think you're confusing a couple different major classes of languages — declarative versus procedural. I said specifically "most expressive ever for querying and manipulating data", and I'd stand by that.
The nice part about SQL compared to the languages you've cited is that you just need to specify the "what" and not the "how". I tell it what data to fetch, where I want it from, how I wanted it grouped/sorted (etc.), and the engine figures out the best (and probably a very efficient) way to do that. This is different from a procedural language like Python or Rust where it'd be on me to also define every implementation detail — get data from here, join by doing this and with that algorithm, sort what comes out, ...
This gives SQL a number of very nice properties:
* It's very fast and succinct to write.
* Even very complex queries are likely to be executed as optimally as they can be (because database engines tend to be very good at this).
* It's so high-level that it can actually get more performant over time. See for example Postgres 12, which eliminated an optimization fence for CTEs (common table expressions) [1], which means that a lot of queries got faster automatically, without the user having to do _anything_.
I love a lot the languages you listed, but SQL is a different animal, and amazing in a way that's quite unique.
---
[1] https://info.crunchydata.com/blog/with-queries-present-future-common-t…
igorw · 2026-03-10
While Postgres did introduce skip scan in 18, it only works for equality matching: https://www.crunchydata.com/blog/get-excited-about-postgres-18#b-tree-…
craftkiller · 2025-12-12
If you're using postgres, couldn't you just create an index on the field inside the JSONB column directly? What advantage are you getting from extracting it to a separate column?
CREATE INDEX idx_status_gin ON my_table USING gin ((data->'status')); ref: https://www.crunchydata.com/blog/indexing-jsonb-in-postgres
akio · 2025-09-07
Evan Siroky's Timezone Boundary Builder[0] is a good source of time zone boundary mappings. It can be used via a library in nearly any language you would want[1], or loaded directly into Postgres and used with PostGIS in queries[2] (of course, if you load it into your DB you should have a process for keeping it updated).
It would be wonderful if Jiff supported coordinates-to-tz lookups out of the box :)
[0]: https://github.com/evansiroky/timezone-boundary-builder/releases
[1]: https://github.com/evansiroky/timezone-boundary-builder#lookup-librari…
[2]: https://www.crunchydata.com/blog/timezone-transformation-using-locatio…
wenc · 2025-05-04
That requires data to already be in Postgres, otherwise you have to ETL data into it first.
DuckDB on the other hand works with data as-is (Parquet, TSV, sqlite, postgres... whether on disk, S3, etc.) with requiring an ETL step (though if the data isn't already in a columnar format, things are gonna be slow... but it will still work).
I work with Parquet data directly with no ETL step. I can literally drop into Jupyter or a Python REPL and duckdb.query("from '*.parquet'")
Correct me if I'm wrong, but I don't think that's possible with Postgis. (even pg_parquet requires copying? [1])
[1] https://www.crunchydata.com/blog/pg_parquet-an-extension-to-connect-po…
digianarchist · 2025-04-27
I’d heard of using Postgres schemas before but not RLS. Interesting…
https://www.crunchydata.com/blog/row-level-security-for-tenants-in-pos…
jot · 2025-03-08
How is this different from Crunchy Warehouse which is also built on Postgres and DuckDB?
https://www.crunchydata.com/products/warehouse
readyplayernull · 2025-01-04
The easiest way would be running Postgres:
https://www.crunchydata.com/blog/postgres-full-text-search-a-search-en…
The problem is getting all the data. If you try to scrap another search engine it will punish you.
You could think on a distributed collaborative SE that scraps the web from the IP addresses of each device.
softinio · 2025-01-01
For Postgres take a look at this:
https://www.crunchydata.com/developers/tutorials
seungwoolee518 · 2024-10-11
Relevant blog post doing Queue on PostgreSQL:
"Devious SQL: Message Queuing Using Native PostgreSQL", Crunchy Data Blog, "Sep 1, 2021", https://www.crunchydata.com/blog/message-queuing-using-native-postgres…
mmastrac · 2024-09-02
Adding to parent comment's context -- it's specifically called "row-level security". The docs show a number of examples for this:
[0] https://www.postgresql.org/docs/current/ddl-rowsecurity.html
-- a policy on the account relation to allow only members of the managers role to access rows, and only rows of their accounts CREATE TABLE accounts (manager text, company text, contact_email text); ALTER TABLE accounts ENABLE ROW LEVEL SECURITY; CREATE POLICY account_managers ON accounts TO managers USING (manager = current_user); EDIT: That page doesn't cover session vars, but this one does:
https://www.crunchydata.com/blog/row-level-security-for-tenants-in-pos…
Nathanba · 2024-08-28
it is very interesting, I have a similar blog post in my bookmarks as well: https://www.crunchydata.com/blog/generating-json-directly-from-postgre…
the problem is that it only works with Postgres, not mysql or sqlite or pretty much anything else (at least not as conveniently) and the bigger problem is that the queries become more complex
pwmtr · 2024-07-24
They have a Ruby control plane; https://www.crunchydata.com/blog/crunchy-bridges-ruby-backend-sorbet-t…