В субботу утром в саппорт начали приходить тикеты с одной и той же формулировкой: «с карты списали дважды за подписку». К обеду их было больше двухсот, к вечеру воскресенья — около трёхсот. Никакого сбоя платёжного шлюза, никакой атаки, никакого человека, который «случайно нажал кнопку дважды». Причина сидела в очереди сообщений, которая честно выполняла ровно то, для чего спроектирована — доставляла событие как минимум один раз. Проблема была в том, что обработчик на другом конце считал, что событие приходит ровно один раз.
Подробнее →