# Engineering & Deep Dives

> Technical articles on DuckDB 2.0 storage extension adaptation, Moonlink real-time Iceberg buffers, pgrx 0.19.3, and PostgreSQL columnstore execution.

---

LLMS index: [llms.txt](/llms.txt)

---

Section pages:

- [Porting pg_mooncake and duckdb_mooncake to DuckDB 2.0, pg_duckdb 1.2.0, and pgrx 0.19.3](/blog/post/duckdb-2-adaptation/): An engineering walkthrough of adapting duckdb_mooncake v0.0.2 and pg_mooncake v0.3.0 to DuckDB 2.0 C++ catalog/filter APIs, wiring LSN-consistent snapshot reads via dlsym, and fixing NULL filter pushdown index remapping.
- [Mooncake is joining Databricks!](/blog/post/mooncake-and-databricks/): Unifying the operational (Postgres / Lakebase) and intelligence (Lakehouse) data estates. The right way.
- [Mooncake: a real-time storage engine for Apache Iceberg](/blog/post/white-paper/): Technical whitepaper on Mooncake and Moonlink: Arrow write buffers, positional deletion vectors, conflict-free compaction remapping, Puffin indexes, and NVMe caching for real-time Apache Iceberg.
- [No, Iceberg won’t fix your data stack.](/blog/post/iceberg-is-terrible/): Apache Iceberg is great for Netflix-scale batch lakes, but painful for real-time apps unless we give it true RDBMS ergonomics: concurrent writes, online compaction, and native indexing.
- [but, my Postgres (+ lakehouse) is free](/blog/post/postgres-lakehouse-free/): Snowflake and Databricks paid billions for their Postgres. Why Postgres + Apache Iceberg is the open, free stack for modern apps and AI agents.
- [HTAP is Dead](/blog/post/htap-is-dead/): I spent the last 10 years building, and then rescuing HTAP databases. Their spirit lives on in the Lakehouse today.
- [What does Analytics in Postgres really mean?](/blog/post/why-postgres-analytics/): From Level 0 SQL tuning to Level 3 real-time OLTP-to-columnstore sync: what developers actually want from Analytics in Postgres.
- [How to improve DuckDB performance on Parquet](/blog/post/duckdb-parquet/): How we made DuckDB run faster on Parquet files in ClickBench with the help of PostgreSQL system tables, row-group min/max pruning, and metadata caching.
- [Clickbench says Postgres is a great analytics database](/blog/post/clickbench-v0.1/): PostgreSQL is now Top 10 on ClickBench with pg_mooncake — delivering specialized OLAP performance entirely inside Postgres.
- [wth are S3 tables](/blog/post/s3tables/): I studied AWS S3 Tables so you don't have to: how S3 table buckets enable catalog-free Apache Iceberg commits and what they mean for Postgres.
- [pg_mooncake 🤝 drizzle: typed SDKs for your analytic workloads](/blog/post/pgmooncake-drizzle/): Use your favorite TypeScript ORM (Drizzle) for analytical workloads on pg_mooncake columnstore tables in PostgreSQL.
- [pg_mooncake + Neon: serverless analytics in Postgres](/blog/post/pgmooncake-neon/): How we accidentally built the best serverless database for analytics by combining Neon's storage engine with pg_mooncake's lakehouse architecture.
- [pg_mooncake: Fast Analytics in Postgres with Columnstore Tables and DuckDB](/blog/post/how-we-built-pgmooncake/): pg_mooncake brings columnstore tables with DuckDB execution to Postgres for fast analytics, supporting transactional inserts, updates, and deletes.
- [Mooncake: next-gen search and analytic systems](/blog/post/mooncake-launch/): We are Zhou, Cheng, and Pranav, and we've spent the last decade building databases. Here are our principles for the next generation of data systems.
- [Reflections from the Iceberg Meetup](/blog/post/iceberg-meetup/): Last month, I spoke at the Iceberg meetup at Snowflake HQ. Here are my key takeaways on community-driven development, the early stages of open table formats, and the future of data performance.
- [Things we learnt](/blog/post/things-we-learnt/): As we start this new journey, we spent some time thinking about the axioms of data today. These are things we (or no one for that matter) can dispute.
