How Shopmonkey built a geo aware automotive care platform
summary
Shopmonkey migrates core data from MongoDB into a three-super-region CockroachDB deployment (nine nodes) to serve 6,000 shops and add ~200–300 locations per month, pushing toward 30 billion yearly transactions. Key specifics: crdb_region on every table and added to foreign keys to avoid mismatches, complex distributed queries (some with ~50 joins) rely on explain analyze for routing, a custom data proxy with prepared-statement caching and intelligent pooling sits between services and DB, real-time changefeeds into NATS JetStream, and online schema rollouts via the wrench online migrations tool.
AI-written summary · about
chapters (15)
- 0:00Welcome and Introduction
- 0:26What is Shopmonkey?
- 1:38Shopmonkey's software architecture before CockroachDB
- 2:58Why Shopmonkey chose CockroachDB
- 3:20Using multi-region managed CockroachDB
- 3:46Architecture for a multi-region database
- 4:55Using global tables in CockroachDB
- 5:45Why adding crdb_region to where clauses can be critical for performance
- 6:58Routing data in CockroachDB with geo aware global load balancers and a location aware service mesh
- 8:26How Shopmonkey's custom connection pooler handles prepared statement caching, pooling, and intelligent caching
- 9:46How Shopmonkey uses changefeeds (CDC)
- 11:17Performing real-time, online migrations
- 13:05Inside Shopmonkey's dev environments
- 14:17Tracing and logging
- 16:11Closing notes
related talks
23mWhy Squarespace adopted CockroachDB for better global performance at scale
39mScaling Shopify's Multi-Tenant Architecture across Multiple Datacenters
24mNavigating Distributed Databases: Challenges & Opportunities
48mBuilding mission-critical applications with CockroachDB
29mHow City Storage Systems designed its Data Infrastructure to minimize toil
18mFrom Today to 10X: Why Groww chose
15mScaling to support America’s #1 sportsbook
15mWhy Yubi selected CockroachDB to power 10x transactional growth
