История одного вебхука: от 0 до 12'500 RPS
ManyChat — это платформа, которая помогает 500'000 бизнесам по всему миру успешно общаться с сотнями миллионов людей через Facebook Messenger. При помощи ManyChat наши пользователи отправляют своим клиентам больше 7'000'000'000 (миллиардов) сообщений в месяц.
Мы выросли до таких показателей за три года существования сервиса.
Одной из главных инженерных задач, которую мы решали и продолжаем решать — обработка входящих webhook'ов от Facebook. Нагрузка на этот компонент выросла с нуля до 750'000 RPM (запросов в минуту). И продолжает расти.
Я расскажу о том, как эволюционировал этот компонент с простого контроллера в популярном фреймворке до распределенной системы. Какие подходы мы применяли на разных этапах роста и как нам удаётся справляться с такой нагрузкой с помощью скромных ресурсов. И всё это без модных Rabbit и Kafka, а на PHP.