Stripe Subscriptions migration¶
Тип материала — корпоративный кейс F02. Исторический срез относится к описанию в публикации.
Компания и задача¶
Перенести подписки из Customer records в отдельную таблицу при продолжающейся работе сервиса.
Первичный источник и период¶
2017-02-02. Проверено 2026-11-03. Stripe Online migrations at scale
Подтверждённые компоненты, технологии и числа¶
FACT — Stripe описывает dual writing, постепенное копирование через обновления, backfill и переключение чтения, затем запись только в новый формат и удаление старого. Для поиска объектов использовался offline pipeline Hadoop.
Поток данных¶
INFERENCE — реконструкция по публикации. Стрелки описывают логическую связь компонентов.
flowchart LR
A["Customer writes"] --> B["Old and new subscription layouts"]
B --> C["Shadow reads and cutover"]
Отказы и границы гарантий¶
FACT — Stripe использовал Scalding для поиска недостающих записей и повторил поиск после backfill. Scientist сравнивал результаты старого и нового чтения в production до переключения. Этапы backfill и переключения чтения
INFERENCE — Раздельно проверить, что новый writer покрывает новые данные, backfill покрывает старые, а новый reader сохраняет семантику. Сравнение чтений до переключения снижает риск неправильного результата.
Нераскрытые детали¶
UNKNOWN — атомарность dual writes, граница транзакции, долговременный rollback и гарантии CDC. Описана миграция модели подписок, а не перенос банковского ledger.
Переносимость решения¶
INFERENCE — Использовать staged migration, наблюдать нагрузку и не удалять старую модель до подтверждения перехода.