<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/stripe-cuts-200-mongodb-pages-a-year-snowflake-rewrites-postgres-cdc-with-a-custom-extension-edhkinnay" -->

---
title: Stripe cuts 200 MongoDB pages a year, Snowflake rewrites...
description: Stripe automated MongoDB incident recovery using graph search and state machines, cutting database-related pager alerts by 30% and eliminating 12 days of...
canonical: https://daily.dev/posts/stripe-cuts-200-mongodb-pages-a-year-snowflake-rewrites-postgres-cdc-with-a-custom-extension-edhkinnay
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Stripe cuts 200 MongoDB pages a year, Snowflake rewrites Postgres CDC with a custom extension | daily.dev
og:description: Stripe automated MongoDB incident recovery using graph search and state machines, cutting database-related pager alerts by 30% and eliminating 12 days of...
og:url: https://daily.dev/posts/stripe-cuts-200-mongodb-pages-a-year-snowflake-rewrites-postgres-cdc-with-a-custom-extension-edhkinnay
og:image: https://api.daily.dev/og/posts/EDhkInnAY.png
og:image:alt: Stripe cuts 200 MongoDB pages a year, Snowflake rewrites Postgres CDC with a custom extension
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.

# Stripe cuts 200 MongoDB pages a year, Snowflake rewrites Postgres CDC with a custom extension

**[Databases Digest](https://daily.dev/sources/databases_digest)** · 4 min read · 0 upvotes · 0 comments

## Summary

Stripe automated MongoDB incident recovery using graph search and state machines, cutting database-related pager alerts by 30% and eliminating 12 days of unhealthy shard states per year. Snowflake built a push-based CDC extension for Postgres that writes directly to Iceberg tables in object storage, bypassing external connectors entirely. A production post-mortem from Groww shows three real bugs in a Holdings service rollout — a race condition, a CDC latency misread, and a covering index fix that dropped database CPU from 72% to 16%. The pg_cron-as-contrib debate is picking up steam across multiple posts today.

## Content

**TLDR:** Stripe automated MongoDB incident recovery using graph search and state machines, cutting database-related pager alerts by 30% and eliminating 12 days of unhealthy shard states per year. Snowflake built a push-based CDC extension for Postgres that writes directly to Iceberg tables in object storage, bypassing external connectors entirely. A production post-mortem from Groww shows three real bugs in a Holdings service rollout — a race condition, a CDC latency misread, and a covering index fix that dropped database CPU from 72% to 16%. The pg_cron-as-contrib debate is picking up steam across multiple posts today.

---

## Stripe cut 200 MongoDB pager alerts per year with graph search and state machines

Stripe modeled their global MongoDB infrastructure as a graph and replaced a fragile plugin-based recovery system with one that runs Dijkstra's algorithm to find the lowest-cost remediation path. The planner can return partial remediation when no complete path exists, which is a meaningful improvement over systems that fail silently or require manual intervention. End result: 30% fewer database-related pages, 200 fewer pages per year, and 12 fewer days of unhealthy shard states annually. They're planning to extend the same framework to topology changes and blue-green deployments. [Read more](https://daily.dev/posts/GqGIU6Am9)

## Snowflake built push-based Postgres CDC via a custom extension writing to Iceberg

Instead of the usual pull-based logical decoding approach, Snowflake's new snowflake_cdc Postgres extension pushes changes directly into Apache Iceberg tables in object storage, then applies them transactionally in Snowflake. The design avoids expensive upserts by using exact insert/delete streams, and 'live views' combine unapplied change logs with base tables to achieve sub-minute lag without frequent apply cycles. No external connectors, no complex failure handling — the replication is self-managing. Worth watching if you're running Postgres-to-Snowflake pipelines today. [Read more](https://daily.dev/posts/GK0OS0oyc)

## Groww post-mortem: three production bugs after a Holdings service rollout

Three bugs surfaced after Groww rolled out a Holdings service revamp to millions of users. A race condition between Hibernate's @PostUpdate and transaction commit caused stale ETag responses — fixed by deferring cache invalidation to after commit. A 1.5s CDC pipeline delay from per-message schema verification in CockroachDB Changefeed was misread as Kafka queue latency; setting schema_locked=true cut propagation latency by 81%. Non-covering secondary indexes forced double lookups and pushed database CPU to 72%; a covering index dropped it to ~16% at full rollout, at the cost of 2x index storage. Each bug is a pattern worth recognizing before you hit it in production. [Read more](https://daily.dev/posts/r7OsgHTg4)

## pg_cron should be a contrib module — the argument is gaining traction

Multiple posts today are making the same case: pg_cron is widely used enough that it should be developed alongside PostgreSQL itself and shipped in official PGDG packaging rather than requiring a separate install. The practical argument is straightforward — contrib status means better visibility, stability guarantees, and one fewer manual step for anyone standing up a new Postgres instance. No official response from the core team yet, but the volume of posts signals real community pressure. [Read more](https://daily.dev/feed-by-ids?id=JButat2lv&id=GslLk098y&id=V3ZIN7mqJ&id=DmVxYXoF4&id=XxLEfRts0)

---

## Also notable

- **IceGate: S3-only observability ingestion at ~$100/month replacing a $700-800/month Kafka pipeline:** IceGate is an open-source, single-binary observability ingestion engine that replaces a Kafka + Flink + OpenTelemetry collector stack by storing WAL, data, and Iceberg catalog entirely in S3, using S3 conditional requests for coordination — metadata caching brought attribute-value query latency from tens of seconds down to ~1 second. [Read more](https://daily.dev/posts/z0Y4HmvQb)
- **pgrust 0.2 claims 300x faster analytical queries over Postgres via batching and JIT:** pgrust 0.2 uses 1024-row batching, operator fusion, JIT compilation, and SIMD (floats excluded due to associativity) to claim 300x faster analytical query performance over standard Postgres — the same episode also covers a ~3.4x COUNT DISTINCT speedup by rewriting DISTINCT as GROUP BY subqueries to enable parallelism. [Read more](https://daily.dev/posts/gDjRUXqR0)
- **PostgreSQL's integer_datetimes GUC: still sent on every connection despite being fixed since PG 10:** Binary-mode drivers depend on this parameter to decode timestamps correctly — guessing wrong produces silently corrupt timestamps, as a 2010 incident showed with dates landing around year 15000 — and pg_upgrade will refuse to migrate any surviving float-built pre-10 cluster. [Read more](https://daily.dev/posts/NobISozqU)

## Similar posts on daily.dev

- [How We Pushed CDC into Postgres](https://daily.dev/posts/how-we-pushed-cdc-into-postgres-gk0os0oyc) · Hacker News · 1 upvotes · 0 comments
- [Snowflake Postgres: Low-Latency CDC for Real-Time AI Analytics](https://daily.dev/posts/snowflake-postgres-low-latency-cdc-for-real-time-ai-analytics-dtuy0xw6k) · Snowflake Community · 1 upvotes · 0 comments

---

Tags: [#backend](https://daily.dev/tags/backend), [#postgresql](https://daily.dev/tags/postgresql), [#mongodb](https://daily.dev/tags/mongodb), [#apache-iceberg](https://daily.dev/tags/apache-iceberg), [#change-data-capture](https://daily.dev/tags/change-data-capture)

[View this post on daily.dev](https://daily.dev/posts/stripe-cuts-200-mongodb-pages-a-year-snowflake-rewrites-postgres-cdc-with-a-custom-extension-edhkinnay)

```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/stripe-cuts-200-mongodb-pages-a-year-snowflake-rewrites-postgres-cdc-with-a-custom-extension-edhkinnay","headline":"Stripe cuts 200 MongoDB pages a year, Snowflake rewrites Postgres CDC with a custom extension","text":"Stripe automated MongoDB incident recovery using graph search and state machines, cutting database-related pager alerts by 30% and eliminating 12 days of unhealthy shard states per year. Snowflake built a push-based CDC extension for Postgres that writes directly to Iceberg tables in object storage, bypassing external connectors entirely. A production post-mortem from Groww shows three real bugs in a Holdings service rollout — a race condition, a CDC latency misread, and a covering index fix that dropped database CPU from 72% to 16%. The pg_cron-as-contrib debate is picking up steam across multiple posts today.","url":"https://daily.dev/posts/stripe-cuts-200-mongodb-pages-a-year-snowflake-rewrites-postgres-cdc-with-a-custom-extension-edhkinnay","datePublished":"2026-08-10T04:18:38.052Z","dateModified":"2026-08-10T04:19:06.301Z","author":{"@type":"Organization","name":"Databases Digest","logo":"https://media.daily.dev/image/upload/s--ir1hdV8b--/f_auto,q_auto/v1773839400/logos/databases_digest?_a=BAMAMiiu0","url":"https://daily.dev/sources/databases_digest"},"interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"isPartOf":{"@type":"WebPage","url":"https://daily.dev/sources/databases_digest","name":"Databases Digest"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Databases Digest","item":"https://daily.dev/sources/databases_digest"},{"@type":"ListItem","position":3,"name":"Stripe cuts 200 MongoDB pages a year, Snowflake rewrites Postgres CDC with a custom extension"}]}
```

