ManyChat — это платформа, которая помогает 500'000 бизнесам по всему миру успешно общаться с сотнями миллионов людей через Facebook Messenger. При помощи ManyChat наши пользователи отправляют своим клиентам больше 7'000'000'000 (миллиардов) сообщений в месяц.

Мы выросли до таких показателей за три года существования сервиса.

Одной из главных инженерных задач, которую мы решали и продолжаем решать — обработка входящих webhook'ов от Facebook. Нагрузка на этот компонент выросла с нуля до 750'000 RPM (запросов в минуту). И продолжает расти.

Я расскажу о том, как эволюционировал этот компонент с простого контроллера в популярном фреймворке до распределенной системы. Какие подходы мы применяли на разных этапах роста и как нам удаётся справляться с такой нагрузкой с помощью скромных ресурсов. И всё это без модных Rabbit и Kafka, а на PHP.

Comments

Comments are closed.

Igor Somov at 14:30 on 19 May 2019

Хороший доклад, было интересно наблюдать как изменялись подходы и решения. Отлично рассказана предметная область, ну и стенд на конференции дополнил впечатление.

Чего на мой взгляд можно ещё чуть улучшить, это сравнений решений. Каждый раз, когда ManyChat сталкивался с проблемой было более одного варианта решения, из которого и был выбран один для эволюции. Но какие были другие варианты, почему их не выбрали — не прозвучало.

Возможно было бы ещё познавательнее увидеть весь граф развития.