Разработчики микроблогингового сервиса 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.

Версия для печати