Очень информативная презентация об архитектуре программного обеспечения и инфраструктуре программного обеспечения Uber с Дэнни Юаном и Амосом Баррето.

В основном следующие предпосылки напоминают управляемую событиями и распределенную архитектуру программного обеспечения.

  • Обнаружение неработающих хостов в кластерной среде с помощью протокола: SWIM — масштабируемый, слабо согласованный стиль заражения, протокол членства в группе процессов VS протокол Heartbeat.
  • Ringpop для балансировки нагрузки: https://github.com/uber/ringpop
  • Sevnup: аварийное восстановление node.js и обнаружение владельца объекта в кластере: https://github.com/uber/sevnup
  • CEP с использованием Apache Storm.
  • Предварительная агрегация событий и статические соединения во время обработки с сохранением уже обработанных данных.
  • Эластичный поиск по географическому поиску, ограниченный небольшим набором прямоугольников (плиток).
  • Apache Kafka для обеспечения массивного ввода и вывода (пропускная способность архитектуры).