Hacker News Digest

01 октября 2025 г. в 16:27 • jeffersonheard.ghost.io • ⭐ 102 • 💬 58

OriginalHN

#bigint#api#integers#data-migration

The best worst hack that saved our bacon

Когда платформа с двенадцатью годами данных календарных событий приблизилась к исчерпанию 32-битного целочисленного первичного ключа (лимит в 2,147,483,647 записей), команда столкнулась с критической проблемой: ключи были видны в публичном API, и их изменение могло нарушить интеграции клиентов, обновляемые университетскими IT-отделами с месячными задержками. Вместо рискованного немедленного перехода на BigInt было принято гениально простое, хотя и временное решение: перевести автоинкремент ключей в отрицательный диапазон, начав с -2,147,483,648, что удвоило доступное пространство и дало до трёх лет на миграцию.

Это позволило команде за 6–8 месяцев реализовать долгосрочное решение: переход на BigInt и сокрытие ключей как непрозрачных handles в API, чтобы избежать подобных проблем в будущем и защититься от атак перебором. Клиенты заранее получили документацию и примеры новых ответов API, что обеспечило плавный переход без сбоев. Хак, хотя и не идеален, стал образцовым примером осознанного технического долга — быстрого, временного решения с чётким планом устранения и минимизацией рисков для пользователей.