Capturing Every Change From Shopify’s Sharded Monolith - Shopify
Mar 12, 2021

Summary
This post details the limitations of Shopify's existing Longboat system for data extraction, including its inability to capture hard deletes, reliance on the `updated_at` field, missing intermediate row states, consistency issues, and missed records. It introduces a new approach for the Merchant Analytics Platform that uses Kafka for change-event capture and streaming transformations, enabling near real-time data ingestion and lower latency query responses, addressing the need for fresher and more comprehensive merchant analytics.
More from the Data Store Selection and Usage trail
- We replaced Redis with MySQL for inventory reservations—and it scaled (2026) - Shopify
- Mitigating Deadlocks in high concurrency environments - Shopify
- Safely Adding NOT NULL Columns to Your Database Tables - Shopify
- Double Entry Transition Tables: How We Track State Changes At Shopify - Shopify
- Shopify’s Unique Data Science Hierarchy Of Needs - Shopify