conv.

All stories
TechQuiet 8d · day 9

PostHog abandons DuckDB warehouse after five months, builds custom Trino

The analytics company switched to DuckDB to escape ClickHouse scaling issues but underestimated customer workload complexity.

What to know

  • PostHog's DuckDB warehouse failed at scale in five months despite initial promise; single-node architecture required massive instance sizes for real workloads, and the DuckLake extension suffered severe write performance issues (3+ minute commits).
  • The company is migrating to a Trino-based system with its own lakehouse format (HogLake), but the announcement offers no proof the new architecture will succeed where DuckDB failed.
  • The move raises questions about premature technology adoption and architecture selection—PostHog skipped ClickHouse due to perceived limitations, tried DuckDB without stress-testing at scale, and is now building custom infrastructure instead of optimizing existing solutions.

The dispute Whether PostHog's architecture decisions reflect pragmatic iteration or poor engineering discipline—are they learning as they scale, or repeatedly making the same mistakes of inadequate pre-migration testing? · positions read across 17 posts and comments

many voices

PostHog should have tested for scale before switching; repeated migrations signal poor planning.

  • “OK, but I think I would have tested 'will it scale?' before switching to DuckDB in the first place.”

    insane_dreamer · Hacker News ↗
many voices

The post is incomplete and reads like recruitment; PostHog hasn't shown the new system actually works.

  • “The article then ends before saying if the new setup solved their problems.”

    Aurornis · Hacker News ↗
some voices

PostHog should have explored improved ClickHouse or Iceberg before building custom infrastructure.

  • “I wonder if they have considered moving back to ClickHouse. ClickHouse Iceberg support has improved a lot over the past few months.”

    hasyimibhar · Hacker News ↗

PostHog Analytics SaaS companyDuckDB Open-source OLAP database

PostHog abandons DuckDB warehouse after five months, builds custom Trino
posthog.com

How it unfolded 1 development · click the chart to see its coverage articlespostscomments

Peak 10 pieces in two hours at Nov 2, 10 AM; 21 pieces over 9 days (1 article · 4 posts · 16 comments) Nov 2, 10 AM — 10 pieces · 1 article · 2 posts · 7 comments — Hacker News 8, Mastodon 1, Newswires 1Nov 2, 12 PM — 7 pieces · 1 post · 6 comments — Hacker News 6, Mastodon 1Nov 2, 2 PM — quietNov 2, 4 PM — quietNov 2, 6 PM — quietNov 2, 8 PM — 3 pieces · 3 comments — Hacker News 3Nov 2, 10 PM — quietNov 3, 12 AM — 1 piece · 1 post — Lobsters 1Nov 3, 2 AM — quietNov 3, 4 AM — quietNov 3, 6 AM — quietNov 3, 8 AM — quietNov 3, 10 AM — quietNov 3, 12 PM — quietNov 3, 2 PM — quietNov 3, 4 PM — quietNov 3, 6 PM — quietNov 3, 8 PM — quietNov 3, 10 PM — quietNov 4, 12 AM — quietNov 4, 2 AM — quietNov 4, 4 AM — quietNov 4, 6 AM — quietNov 4, 8 AM — quietNov 4, 10 AM — quietNov 4, 12 PM — quietNov 4, 2 PM — quietNov 4, 4 PM — quietNov 4, 6 PM — quietNov 4, 8 PM — quietNov 4, 10 PM — quietNov 5, 12 AM — quietNov 5, 2 AM — quietNov 5, 4 AM — quietNov 5, 6 AM — quietNov 5, 8 AM — quietNov 5, 10 AM — quietNov 5, 12 PM — quietNov 5, 2 PM — quietNov 5, 4 PM — quietNov 5, 6 PM — quietNov 5, 8 PM — quietNov 5, 10 PM — quietNov 6, 12 AM — quietNov 6, 2 AM — quietNov 6, 4 AM — quietNov 6, 6 AM — quietNov 6, 8 AM — quietNov 6, 10 AM — quietNov 6, 12 PM — quietNov 6, 2 PM — quietNov 6, 4 PM — quietNov 6, 6 PM — quietNov 6, 8 PM — quietNov 6, 10 PM — quietNov 7, 12 AM — quietNov 7, 2 AM — quietNov 7, 4 AM — quietNov 7, 6 AM — quietNov 7, 8 AM — quietNov 7, 10 AM — quietNov 7, 12 PM — quietNov 7, 2 PM — quietNov 7, 4 PM — quietNov 7, 6 PM — quietNov 7, 8 PM — quietNov 7, 10 PM — quietNov 8, 12 AM — quietNov 8, 2 AM — quietNov 8, 4 AM — quietNov 8, 6 AM — quietNov 8, 8 AM — quietNov 8, 10 AM — quietNov 8, 12 PM — quietNov 8, 2 PM — quietNov 8, 4 PM — quietNov 8, 6 PM — quietNov 8, 8 PM — quietNov 8, 10 PM — quietNov 9, 12 AM — quietNov 9, 2 AM — quietNov 9, 4 AM — quietNov 9, 6 AM — quietNov 9, 8 AM — quietNov 9, 10 AM — quietNov 9, 12 PM — quietNov 9, 2 PM — quietNov 9, 4 PM — quietNov 9, 6 PM — quietNov 9, 8 PM — quietNov 9, 10 PM — quietYesterday, 12 AM — quietYesterday, 2 AM — quietYesterday, 4 AM — quietYesterday, 6 AM — quietYesterday, 8 AM — quietYesterday, 10 AM — quietYesterday, 12 PM — quietYesterday, 2 PM — quietYesterday, 4 PM — quietYesterday, 6 PM — quietYesterday, 8 PM — quietYesterday, 10 PM — quietToday, 12 AM — quietToday, 2 AM — quietToday, 4 AM — quiet 1
Nov 3Nov 4Nov 5Nov 6Nov 7Nov 8Nov 9yesterdaynow · 5:43 AM ET
  1. 1

    PostHog details scaling failures with DuckDB, announces migration to custom Trino

    PostHog published a detailed postmortem explaining why DuckDB failed at scale. Single-node architecture required oversized instances for large workloads; the DuckLake lakehouse extension suffered from poor write performance (3+ minute commits due to full catalog re-reads); and maintaining a fork of DuckLake prevented upstream contribution. The company is migrating to a Trino derivative with HogLake, its own open table format.

    “We love DuckDB. It's probably the best single-node tool for analyzing heaps of data… The same features that are great locally gave us problems in the cloud.”
    — PostHog
    • Sometimes a company just isn't able to manage a data warehouse; I've worked for a few.I even phone screened with this one but couldn't cover their crazy quilt of requirements; at that time they were also looking for someone to rewrite the clickhouse optimizer, and they were stuck trying to reshard their cluster, which should take an afternoon.I…

      kwilletsHacker News8d agoview on Hacker News ↗
    2 more of the top 3 · 17 posts in this stretch
    • hn100@social.lansky.name

      Moving our warehouse off DuckDB Link: https:// posthog.com/blog/moving-off-du ckdb Discussion: https:// news.ycombinator.com/item?id=5 0338747

      hn100@social.lansky.nameMastodon8d agoview on Mastodon ↗
    • Things like this are a part of why I push back on people telling me we can do important things later. I don’t want to swap the engine out of a machine that’s moving that fast. There’s no time to learn about how it behaves with real versus synthetic traffic and what the failure modes are when you’re doing many thousands of transactions per…

      hinkleyHacker News8d agoview on Hacker News ↗
    all of them →
  2. background

    PostHog rebuilds warehouse on DuckDB, abandons ClickHouse — PostHog migrated its data warehouse from a shared ClickHouse cluster to DuckDB, with each customer getting their own instance. The move was motivated by ClickHouse's inability to handle long-running modeling queries and lack of cost-based query optimization.

What people are saying 13 voices from 1 site · best of 17 · verbatim

Still unanswered
  • Did PostHog test DuckDB at scale before committing the entire warehouse to it?
  • Will the custom Trino + HogLake setup actually solve the problems, or is this another temporary solution?
  • Why build custom infrastructure instead of fully exploring ClickHouse's improved Iceberg support or other established distributed options?