Разработчики микроблогингового сервиса Twitter опубликовали под лицензией Eclipse исходники Storm — специализированной отказоустойчивой распределенной системы обработки потоков данных в режиме реального времени. Текущая версия исходных текстов Storm, находящаяся на сервисе GitHub, обозначена номером 0.5.2.
Особенности системы Storm:
- простая модель разработки под него;
- работа с любым языком программирования; по умолчанию поддерживаются Clojure, Java, Ruby и Python, но добавить поддержку любого другого языка проблем не составит, поскольку для этого предусмотрен специальный коммуникационный протокол;
- горизонтальная масштабируемость; все вычисления могут параллельно выполняться на множестве компьютеров, процессов и потоках;
- гарантированная обработка поступающих сообщений; в случае неудачи, необработанные запросы буду посылаться снова до тех пор, пока они не будут выполнены;
- высокая скорость работы;
- наличие одиночного режима работы, когда требуется оттестировать какую-либо функцию без необходимости развертывания целого кластера; Storm позволяет эмулировать кластеризацию внутри себя для отладочных целей.
Что касается аналогов, то считается, что Storm соперничает с такими разработками как Esper, Streambase, HStreaming и Yahoo S4. Минусом Storm является то, что для хранения данных необходимо использовать внешнее хранилище, для чего в этом проекте используется Cassandra.
Для запуска Storm в режиме кластера необходимо наличие Apache Zookeeper, ØMQ, JZMQ, Java 6, Python 2.6.6.
Проект имеет документацию, а также собственный канал в IRC-сети FreeNode.