{"slug": "citus", "name": "Citus", "category": "databases", "category_name": "Databases", "description": "", "recommenders": 3, "commenters": 8, "warners": 1, "score": 2.881, "rising": 1.35, "first": "2025-11-09", "latest": "2026-09-12", "why": "So with Citus you can absolutely have as many query routers (coordinators if you wish) as you want.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 4, "compare": 2, "warn": 1}, "spark": [0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "So with Citus you can absolutely have as many query routers (coordinators if you wish) as you want.", "kind": "", "icon": true, "domain": "citusdata.com", "github_repo": null, "official_url": "https://www.citusdata.com", "pricing": "", "aliases": ["Citus"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 794739776, "item_id": 49671236, "url": "https://news.ycombinator.com/item?id=49671236", "by": "ahachete", "date": "2026-09-12", "stance": "recommend", "quote": "For example, we have a customer that ingests some 30TB/day", "excerpt": "> schema changes locking Schema changes need locking... everywhere. Citus is no different. And they need proper design everywhere. If you mean that it requires distributed transactions, well, yes, again: expected and solved. Not even all sharding solutions support this. > coordinator node Not sure what the problem is here. If what you mean is that a single coordinator, even with an HA replica, can saturate, that's tr", "context": "", "use_case": "Distributed Postgres ingestion", "switched_from": "", "story": "118M Queries per Second on Neki"}, {"id": 794692992, "item_id": 49668312, "url": "https://news.ycombinator.com/item?id=49668312", "by": "saisrirampur", "date": "2026-09-12", "stance": "recommend", "quote": "It is a brilliant piece of technology", "excerpt": "Most Citus workloads were 10s of TB with largest at around a few PB or so. Heap was a couple PB, back then, if I remember correctly. It is a brilliant piece of technology that supported mission critical workloads across mid/late stage startups to huge enterprises. The planner/executor are very advanced supporting a multitude of features and decade of intricate effort. The biggest problem of Citus was migration effort", "context": "Multi-year experience working with Citus", "use_case": "Distributed PostgreSQL scaling", "switched_from": "", "story": "118M Queries per Second on Neki"}, {"id": 775822145, "item_id": 48488884, "url": "https://news.ycombinator.com/item?id=48488884", "by": "ahachete", "date": "2026-06-11", "stance": "recommend", "quote": "Citus works this way, and even adds convenience functions for shard migration", "excerpt": "I have mentioned this before, but here it goes again: I'm really happy that there's more options for Postgres sharding and I applaud Pgdog and the team's efforts and energy. Having said that, this makes it a no-go for me: > shard_number = hash(data) % num_shards https://docs.pgdog.dev/features/sharding/basics/#terminology Most sharding solutions distribute the hash value over linear ranges, that then split across \"vi", "context": "", "use_case": "", "switched_from": "", "story": "PgDog is funded and coming to a database near you"}, {"id": 775795744, "item_id": 48487234, "url": "https://news.ycombinator.com/item?id=48487234", "by": "ahachete", "date": "2026-06-11", "stance": "recommend", "quote": "So with Citus you can absolutely have as many query routers (coordinators if you wish) as you want.", "excerpt": "> having the ability to scale the coordinator past a single machine Since Citus v11 (released 4 years ago), any worker node can also work as a \"query router\" (a node that you can query against [1], and works from this perspective as a pure coordinator: > for very demanding applications, you now have the option to load balance distributed queries across the workers You can also setup such query routers as dedicated no", "context": "", "use_case": "Distributed PostgreSQL", "switched_from": "", "story": "PgDog is funded and coming to a database near you"}, {"id": 775635825, "item_id": 48477239, "url": "https://news.ycombinator.com/item?id=48477239", "by": "levkk", "date": "2026-06-10", "stance": "recommend", "quote": "OLAP - Citus still wins because of its advanced query engine.", "excerpt": "We do, just buried deep in our blog: https://pgdog.dev/blog/pgdog-vs-citus The same old processes vs. threads debate, plus having the ability to scale the coordinator past a single machine. So, if you're OLTP, definitely consider PgDog. OLAP - Citus still wins because of its advanced query engine. We'll get there.", "context": "", "use_case": "OLAP query engine", "switched_from": "", "story": "PgDog is funded and coming to a database near you"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 773034612, "item_id": 48314663, "url": "https://news.ycombinator.com/item?id=48314663", "by": "buremba", "date": "2026-05-28", "stance": "warn", "quote": "it's usually a trap as you can't get the value without using the vendor's cloud offerings", "excerpt": "The native extensions are fine but I don't have good experience with any third party extensions, so far tried Timescale, pg_lake, citus, and pgvectorscale. They look very appealing but it's usually a trap as you can't get the value without using the vendor's cloud offerings. I think if you grow enough to look for these extensions, it's usually better to bet on purpose-specific tooling. For example, I use DuckDB/Icebe", "context": "", "use_case": "", "switched_from": "", "story": "Just Use Postgres for Durable Workflows"}]}], "who": [{"by": "saisrirampur", "context": "Multi-year experience working with Citus", "url": "https://news.ycombinator.com/item?id=49668312", "date": "2026-09-12"}], "tags": [], "use_cases": ["distributed postgres ingestion", "distributed postgresql scaling", "distributed postgresql", "olap query engine", "columnar analytics"], "compared": [{"slug": "pgdog", "name": "PgDog", "co": 4, "switched_from": 0, "switched_to": 0}, {"slug": "postgresql", "name": "PostgreSQL", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "pg-lake", "name": "pg_lake", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "duckdb", "name": "DuckDB", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=48476466", "title": "PgDog is funded and coming to a database near you", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=49660555", "title": "118M Queries per Second on Neki", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=49645686", "title": "Neki \u2013 Sharded Postgres", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48719483", "title": "DocumentDB \u2013 a MongoDB compatible open-source database", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48313530", "title": "Just Use Postgres for Durable Workflows", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47123631", "title": "Show HN: PgDog \u2013 scale Postgres without changing the app", "mentions": 1}], "sentiment_by_month": {"2025-11": {"neutral": 1}, "2025-12": {}, "2026-01": {"compare": 1, "neutral": 1}, "2026-02": {"neutral": 1}, "2026-03": {}, "2026-04": {}, "2026-05": {"warn": 1}, "2026-06": {"recommend": 2, "neutral": 1}, "2026-07": {}, "2026-08": {}, "2026-09": {"compare": 1, "recommend": 1}, "2026-10": {}}, "quotes": [{"id": 794739776, "item_id": 49671236, "url": "https://news.ycombinator.com/item?id=49671236", "by": "ahachete", "date": "2026-09-12", "stance": "recommend", "quote": "For example, we have a customer that ingests some 30TB/day", "excerpt": "> schema changes locking Schema changes need locking... everywhere. Citus is no different. And they need proper design everywhere. If you mean that it requires distributed transactions, well, yes, again: expected and solved. Not even all sharding solutions support this. > coordinator node Not sure what the problem is here. If what you mean is that a single coordinator, even with an HA replica, can saturate, that's tr", "context": "", "use_case": "Distributed Postgres ingestion", "switched_from": "", "story": "118M Queries per Second on Neki"}, {"id": 794692992, "item_id": 49668312, "url": "https://news.ycombinator.com/item?id=49668312", "by": "saisrirampur", "date": "2026-09-12", "stance": "recommend", "quote": "It is a brilliant piece of technology", "excerpt": "Most Citus workloads were 10s of TB with largest at around a few PB or so. Heap was a couple PB, back then, if I remember correctly. It is a brilliant piece of technology that supported mission critical workloads across mid/late stage startups to huge enterprises. The planner/executor are very advanced supporting a multitude of features and decade of intricate effort. The biggest problem of Citus was migration effort", "context": "Multi-year experience working with Citus", "use_case": "Distributed PostgreSQL scaling", "switched_from": "", "story": "118M Queries per Second on Neki"}, {"id": 794563473, "item_id": 49660217, "url": "https://news.ycombinator.com/item?id=49660217", "by": "ahachete", "date": "2026-09-11", "stance": "compare", "quote": "Citus model is also a proxy model, where the proxy just happens to be Postgres", "excerpt": "But it's not really accurate: > This adds some undesirable side effects, however. First, the coordinator becomes the bottleneck. Apart from being able to use any node as a coordinator (and you can load balance them to avoid having \"multiple connection strings), there's a new pattern which effectively allows you to have as many coordinators as you want. They are effectively \"data-less\" nodes. We have devised and imple", "context": "", "use_case": "", "switched_from": "", "story": "Neki \u2013 Sharded Postgres"}, {"id": 779536161, "item_id": 48721010, "url": "https://news.ycombinator.com/item?id=48721010", "by": "stackskipton", "date": "2026-06-29", "stance": "neutral", "quote": "apparently it sees a ton of use internally", "excerpt": "Beyond other reason listed in the comments, Microsoft is heavily invested in Postgres. They bought Postgres sharding company (https://www.citusdata.com) and apparently it sees a ton of use internally even for newer Greenfield projects. Also, if check recent commits to Postgres, you will find Microsoft employees all over commit history. As I've commented several times before, MSSQL appears to be on life support. It ma", "context": "", "use_case": "", "switched_from": "", "story": "DocumentDB \u2013 a MongoDB compatible open-source database"}, {"id": 775822145, "item_id": 48488884, "url": "https://news.ycombinator.com/item?id=48488884", "by": "ahachete", "date": "2026-06-11", "stance": "recommend", "quote": "Citus works this way, and even adds convenience functions for shard migration", "excerpt": "I have mentioned this before, but here it goes again: I'm really happy that there's more options for Postgres sharding and I applaud Pgdog and the team's efforts and energy. Having said that, this makes it a no-go for me: > shard_number = hash(data) % num_shards https://docs.pgdog.dev/features/sharding/basics/#terminology Most sharding solutions distribute the hash value over linear ranges, that then split across \"vi", "context": "", "use_case": "", "switched_from": "", "story": "PgDog is funded and coming to a database near you"}, {"id": 775795744, "item_id": 48487234, "url": "https://news.ycombinator.com/item?id=48487234", "by": "ahachete", "date": "2026-06-11", "stance": "recommend", "quote": "So with Citus you can absolutely have as many query routers (coordinators if you wish) as you want.", "excerpt": "> having the ability to scale the coordinator past a single machine Since Citus v11 (released 4 years ago), any worker node can also work as a \"query router\" (a node that you can query against [1], and works from this perspective as a pure coordinator: > for very demanding applications, you now have the option to load balance distributed queries across the workers You can also setup such query routers as dedicated no", "context": "", "use_case": "Distributed PostgreSQL", "switched_from": "", "story": "PgDog is funded and coming to a database near you"}, {"id": 775635825, "item_id": 48477239, "url": "https://news.ycombinator.com/item?id=48477239", "by": "levkk", "date": "2026-06-10", "stance": "recommend", "quote": "OLAP - Citus still wins because of its advanced query engine.", "excerpt": "We do, just buried deep in our blog: https://pgdog.dev/blog/pgdog-vs-citus The same old processes vs. threads debate, plus having the ability to scale the coordinator past a single machine. So, if you're OLTP, definitely consider PgDog. OLAP - Citus still wins because of its advanced query engine. We'll get there.", "context": "", "use_case": "OLAP query engine", "switched_from": "", "story": "PgDog is funded and coming to a database near you"}, {"id": 773034612, "item_id": 48314663, "url": "https://news.ycombinator.com/item?id=48314663", "by": "buremba", "date": "2026-05-28", "stance": "warn", "quote": "it's usually a trap as you can't get the value without using the vendor's cloud offerings", "excerpt": "The native extensions are fine but I don't have good experience with any third party extensions, so far tried Timescale, pg_lake, citus, and pgvectorscale. They look very appealing but it's usually a trap as you can't get the value without using the vendor's cloud offerings. I think if you grow enough to look for these extensions, it's usually better to bet on purpose-specific tooling. For example, I use DuckDB/Icebe", "context": "", "use_case": "", "switched_from": "", "story": "Just Use Postgres for Durable Workflows"}, {"id": 754120818, "item_id": 47132551, "url": "https://news.ycombinator.com/item?id=47132551", "by": "levkk", "date": "2026-02-23", "stance": "neutral", "quote": "This is the Citus way and we know it's possible.", "excerpt": "A couple options come to mind: 1. Replicate shards into one beefy database and use that. Replication is cheaper than individual statements, so this can work for a while. The sink can be Postgres or another database like Clickhouse. At Instacart, we used Snowflake, with an in-house CDC pipeline. It worked well, but Snowflake was only usable for offline analytics, like BI / batch ML, and quite expensive. We'll add supp", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: PgDog \u2013 scale Postgres without changing the app"}, {"id": 747988721, "item_id": 46749295, "url": "https://news.ycombinator.com/item?id=46749295", "by": "junto", "date": "2026-01-24", "stance": "neutral", "quote": "Citus based, but without the CosmosDb badge", "excerpt": "Microsoft originally bought CitusData and rebadged it as Azure CosmosDb for Postgres Cluster. Microsoft have been recommending partners to now avoid that product. It does not and will not support Entra federated workload identities (passwordless). The replacement will be Azure Database for Postgres with Elastic Clusters. I think it is still in preview. Again it\u2019s Citus based, but without the CosmosDb badge and it wil", "context": "", "use_case": "", "switched_from": "", "story": "Scaling PostgreSQL to power 800M ChatGPT users"}, {"id": 746346529, "item_id": 46646658, "url": "https://news.ycombinator.com/item?id=46646658", "by": "oulu2006", "date": "2026-01-16", "stance": "compare", "quote": "Citus comes with a lot more out of the box but duckdb could be a good stepping stone.", "excerpt": "That's really interesting, I love the idea of being able to use columnar support directly within postgresql. I was thinking of using Citus for this, but possibly using duckdb is a better way to do. Citus comes with a lot more out of the box but duckdb could be a good stepping stone.", "context": "", "use_case": "columnar analytics", "switched_from": "", "story": "Why DuckDB is my first choice for data processing"}, {"id": 733954259, "item_id": 45872141, "url": "https://news.ycombinator.com/item?id=45872141", "by": "tehlike", "date": "2025-11-09", "stance": "neutral", "quote": "migrate bits and pieces to pg_lake from hydra/citus columnar", "excerpt": "Building https://pricetracker.wtf but life got in the way lately. Now looking to migrate bits and pieces to pg_lake from hydra/citus columnar.", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: What Are You Working On? (Nov 2025)"}]}