Два сервиса писали в один ключ Redis одно и то же. Это и было опасно
Habr ·
Переводя сервис прогнозов на общий Redis, я увидел в чужой базе ключ current_occupancy_cache и обнаружил, что ровно такой же пишет мой сервис. Развёл по разным номерам баз. Сегодня полез проверять эту историю и выяснил две вещи. Во-первых, коллизия стала невозможна через два дня сама по себе: мультигородность добавила ключу суффикс :city , и ни в одном коммите той фичи сервис прогнозов не упоминается. Во-вторых, и это интереснее, на тот день обе записи были одинаковыми поле в поле. То есть затирание прошло бы совершенно корректно, без ошибки и без строчки в логе. Опасным оно стало бы четырьмя днями позже, когда в одну из записей добавили has_live_data , а на фронте стоит ?? true . Про то, почему совпадение данных это не свойство системы, а след копипасты, и почему разводить общие пространства имён надо до того, как данные разъехались. Читать далее