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