Как реализовать легкую услугу pub-sub в App Engine?

Во время своей презентации I/O 2009 "Оффлайновая обработка на App Engine: взгляд вперед" (видео, слайды), Бретт Слаткин представляет службу очереди задач.

Он утверждает, что

Pub-sub системы максимизируют транзакции, развязывание:

  • Большое количество небольших транзакций в секунду
  • Отключение "один ко многим" с меняющимися приемниками
  • Гарантированное упорядочение, фильтрация, двухфазное принятие

И специально подчеркивает

Наш новый API реализует очередность, а не pub-sub


Меня интересует только часть этих функциональных возможностей:

  • Отключение "один ко многим" с изменением выбранных/фиксированных внутренних обработчиков приемников
  • Гарантированное упорядочение, фильтрация, двухфазное принятие

Целевая цель - облегчить публикацию уведомлений/сообщений между различными модулями одного и того же веб-приложения. Примеры сценариев использования сценариев:

  • Предоставление платежного модуля информации о получении счетов.
  • Предоставление пользователю возможности отслеживать изменения определенного объекта домена, на который он решил следовать /star.

Каким будет правильный способ реализовать их поверх службы очереди задач?

Ответы

Ответ 1

Рассмотрим использование Cloud Pub/Sub. Это внешняя версия внутренней технологии Pub/Sub, которая широко используется в google в течение 7 лет и оказалась масштабируемой и надежной. На сегодняшний день он все еще бета-версии, но мы скоро собираемся в GA (через несколько месяцев).