Master Branch: [![Travis CI](https://travis-ci.org/apache/storm.svg?branch=master)](https://travis-ci.org/apache/storm)

Storm is a distributed realtime computation system. Similar to how Hadoop provides a set of general primitives for doing batch processing, Storm provides a set of general primitives for doing realtime computation. Storm is simple, can be used with any programming language, [is used by many companies](http://storm-project.net/documentation/Powered-By.html), and is a lot of fun to use!

The [Rationale page](http://storm-project.net/documentation/Rationale.html) explains what Storm is and why it was built. [This presentation](http://vimeo.com/40972420) is also a good introduction to the project.

Storm has a website at [storm.apache.org](http://storm.apache.org). Follow [@stormprocessor](https://twitter.com/stormprocessor) on Twitter for updates on the project.

## Documentation

Documentation and tutorials can be found on the [Storm website](http://storm-project.net/documentation/Home.html).

Developers and contributors should also take a look at our [Developer documentation](DEVELOPER.md).


## Getting help

__NOTE:__ The google groups account storm-user@googlegroups.com is now officially deprecated in favor of the Apache-hosted user/dev mailing lists.

### Storm Users
Storm users should send messages and subscribe to [user@storm.apache.org](mailto:user@storm.apache.org).

You can subscribe to this list by sending an email to [user-subscribe@storm.apache.org](mailto:user-subscribe@storm.apache.org). Likewise, you can cancel a subscription by sending an email to [user-unsubscribe@storm.apache.org](mailto:user-unsubscribe@storm.apache.org).

You can also [browse the archives of the storm-user mailing list](http://mail-archives.apache.org/mod_mbox/storm-user/).

### Storm Developers
Storm developers should send messages and subscribe to [dev@storm.apache.org](mailto:dev@storm.apache.org).

You can subscribe to this list by sending an email to [dev-subscribe@storm.apache.org](mailto:dev-subscribe@storm.apache.org). Likewise, you can cancel a subscription by sending an email to [dev-unsubscribe@storm.apache.org](mailto:dev-unsubscribe@storm.apache.org).

You can also [browse the archives of the storm-dev mailing list](http://mail-archives.apache.org/mod_mbox/storm-dev/).

### Which list should I send/subscribe to?
If you are using a pre-built binary distribution of Storm, then chances are you should send questions, comments, storm-related announcements, etc. to [user@storm.apache.org](user@storm.apache.org).

If you are building storm from source, developing new features, or otherwise hacking storm source code, then [dev@storm.apache.org](dev@storm.apache.org) is more appropriate.

### What will happen with storm-user@googlegroups.com?
All existing messages will remain archived there, and can be accessed/searched [here](https://groups.google.com/forum/#!forum/storm-user).

New messages sent to storm-user@googlegroups.com will either be rejected/bounced or replied to with a message to direct the email to the appropriate Apache-hosted group.

### IRC
You can also come to the #storm-user room on [freenode](http://freenode.net/). You can usually find a Storm developer there to help you out.

## License

Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.


## Project lead

* Nathan Marz ([@nathanmarz](http://twitter.com/nathanmarz))

## Committers

* James Xu ([@xumingming](https://github.com/xumingming))
* Jason Jackson ([@jason_j](http://twitter.com/jason_j))
* Andy Feng ([@anfeng](https://github.com/anfeng))
* Flip Kromer ([@mrflip](https://github.com/mrflip))
* David Lao ([@davidlao2k](https://github.com/davidlao2k))
* P. Taylor Goetz ([@ptgoetz](https://github.com/ptgoetz))
* Derek Dagit ([@d2r](https://github.com/d2r))
* Robert Evans ([@revans2](https://github.com/revans2))
* Michael G. Noll ([@miguno](https://github.com/miguno))
* Kishor Patil ([@kishorvpatil](https://github.com/kishorvpatil))
* Sriharsha Chintalapani([@harshach](https://github.com/harshach))
* Sean Zhong ([@clockfly] (http://github.com/clockfly))
* Kyle Nusbaum ([@knusbaum](https://github.com/knusbaum))
* Parth Brahmbhatt ([@Parth-Brahmbhatt](https://github.com/Parth-Brahmbhatt))
* Jungtaek Lim ([@HeartSaVioR](https://github.com/HeartSaVioR))

## Contributors

* Christopher Bertels ([@bakkdoor](http://twitter.com/bakkdoor))
* Michael Montano ([@michaelmontano](http://twitter.com/michaelmontano))
* Dennis Zhuang ([@killme2008](https://github.com/killme2008))
* Trevor Smith ([@trevorsummerssmith](https://github.com/trevorsummerssmith))
* Ben Hughes ([@schleyfox](https://github.com/schleyfox))
* Alexey Kachayev ([@kachayev](https://github.com/kachayev))
* Haitao Yao ([@haitaoyao](https://github.com/haitaoyao))
* Dan Dillinger ([@ddillinger](https://github.com/ddillinger))
* Kang Xiao ([@xiaokang](https://github.com/xiaokang))
* Gabriel Grant ([@gabrielgrant](https://github.com/gabrielgrant))
* Travis Wellman ([@travisfw](https://github.com/travisfw))
* Kasper Madsen ([@KasperMadsen](https://github.com/KasperMadsen))
* Michael Cetrulo ([@git2samus](https://github.com/git2samus))
* Thomas Jack ([@tomo](https://github.com/tomo))
* Nicolas Yzet ([@nicoo](https://github.com/nicoo))
* Fabian Neumann ([@hellp](https://github.com/hellp))
* Soren Macbeth ([@sorenmacbeth](https://github.com/sorenmacbeth))
* Ashley Brown ([@ashleywbrown](https://github.com/ashleywbrown))
* Guanpeng Xu ([@herberteuler](https://github.com/herberteuler))
* Vinod Chandru ([@vinodc](https://github.com/vinodc))
* Martin Kleppmann ([@ept](https://github.com/ept))
* Evan Chan ([@velvia](https://github.com/velvia))
* Sjoerd Mulder ([@sjoerdmulder](https://github.com/sjoerdmulder))
* Yuta Okamoto ([@okapies](https://github.com/okapies))
* Barry Hart ([@barrywhart](https://github.com/barrywhart))
* Sergey Lukjanov ([@Frostman](https://github.com/Frostman))
* Ross Feinstein ([@rnfein](https://github.com/rnfein))
* Junichiro Takagi ([@tjun](https://github.com/tjun))
* Bryan Peterson ([@Lazyshot](https://github.com/Lazyshot))
* Sam Ritchie ([@sritchie](https://github.com/sritchie))
* Stuart Anderson ([@emblem](https://github.com/emblem))
* Lorcan Coyle ([@lorcan](https://github.com/lorcan))
* Andrew Olson ([@noslowerdna](https://github.com/noslowerdna))
* Gavin Li ([@lyogavin](https://github.com/lyogavin))
* Tudor Scurtu ([@tscurtu](https://github.com/tscurtu))
* Homer Strong ([@strongh](https://github.com/strongh))
* Sean Melody ([@srmelody](https://github.com/srmelody))
* Jake Donham ([@jaked](https://github.com/jaked))
* Ankit Toshniwal ([@ankitoshniwal](https://github.com/ankitoshniwal))
* Adam Lewis ([@supercargo](https://github.com/supercargo))
* Alexander Yerenkow ([@yerenkow](https://github.com/yerenkow))
* Brenden Matthews ([@brndnmtthws](https://github.com/brdnmtthws))
* Bryan Baugher ([@bbaugher](https://github.com/bbaugher))
* Danijel Schiavuzzi ([@dschiavu](https://github.com/dschiavu))
* David James ([@xpe](https://github.com/xpe))
* David Losada ([@tuxpiper](https://github.com/tuxpiper))
* Francois Dang Ngoc ([@darthbear](https://github.com/darthbear))
* Gangrui Li ([@davidlgr](https://github.com/davidlgr))
* John Gilmore ([@jsgilmore](https://github.com/jsgilmore))
* Julien Nioche ([@jnioche](https://github.com/jnioche))
* Muneyuki Noguchi ([@mnogu](https://github.com/mnogu))
* Niels Basjes ([@nielsbasjes](https://github.com/nielsbasjes))
* Padma Priya Chitturi ([PadmaCh](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=PadmaCh))
* Prabeesh K ([@prabeesh](https://github.com/prabeesh))
* Sean Zhong ([@clockfly](https://github.com/clockfly))
* Sriharsha Chintalapani ([@harshach](https://github.com/harshach))
* Srinivas Prasad Gumdelli ([@srinivasgumdelli](https://github.com/srinivasgumdelli))
* Steven Phung ([@stphung](https://github.com/stphung))
* Suresh Srinivas ([@sureshms](https://github.com/sureshms))
* thinker0 ([@thinker0](https://github.com/thinker0))
* Troy Ding ([@troyding](https://github.com/troyding))
* Aaron Zimmerman ([@aaronzimmerman](https://github.com/aaronzimmerman))
* Albert Chu ([@chu11](https://github.com/chu11))
* Krystian Nowak ([@krystiannowak](https://github.com/krystiannowak))
* Parth-Brahmbhatt ([@Parth-Brahmbhatt](https://github.com/Parth-Brahmbhatt))
* Adrian Petrescu ([@apetresc](https://github.com/apetresc))
* DashengJu ([@dashengju](https://github.com/dashengju))
* Li Jiahong ([@Gvain](https://github.com/Gvain))
* Aaron Levin ([@aaronlevin](https://github.com/aaronlevin))
* Masatake Iwasaki ([@iwasakims](https://github.com/iwasakims))
* Milad Fatenejad ([@icksa](https://github.com/icksa))
* Ryan Liu ([@shell0dh](https://github.com/shell0dh))
* Dave Parfitt ([@metadave](https://github.com/metadave))
* Jo Liss ([@joliss](https://github.com/joliss))
* averykhoo ([@averykhoo](https://github.com/averykhoo))
* Curtis Allen ([@curtisallen](https://github.com/curtisallen))
* Raghavendra Nandagopal ([@RaghavendraNandagopal](https://github.com/RaghavendraNandagopal))
* Boris Aksenov ([@miofthena](https://github.com/miofthena))
* Itai Frenkel ([@itaifrenkel](https://github.com/itaifrenkel))
* Naresh Kosgi ([@NareshKosgi](https://github.com/NareshKosgi))
* Sean T Allen ([@SeanTAllen](https://github.com/SeanTAllen))
* Gabriel Ciuloaica ([@devsprint](https://github.com/devsprint))
* wurstmeister ([@wurstmeister](https://github.com/wurstmeister))
* Marc Beitchman ([@mbeitchman](https://github.com/mbeitchman))
* Dan Blanchard ([@dan-blanchard](https://github.com/dan-blanchard))
* Mykhailo "Michael" Pershyn ([@pershyn](https://github.com/pershyn))
* Dave Golombek ([@dgolombek](https://github.com/dgolombek))
* Edison Xu ([@EdisonXu](https://github.com/EdisonXu))
* Ariel Valentin ([@arielvalentin](http://blog.arielvalentin.com/))
* Dane Hammer ([@danehammer](https://github.com/danehammer))
* Christophe Carre' ([@chrisz](https://github.com/chrisz))
* Anya Tchernishov ([@anyatch](https://github.com/anyatch))
* Ahmet DAL ([@javrasya](https://github.com/javrasya))
* Kai Sasaki ([@Lewuathe](https://github.com/Lewuathe))
* Matthew Siegel ([@msiegel07](https://github.com/msiegel07))
* Jun Xia ([@tedxia](https://github.com/tedxia))
* caofangkun ([@caofangkun](https://github.com/caofangkun))
* Mansheng Yang ([@lightyang](https://github.com/lightyang))
* Rick Kilgore ([@rick-kilgore](http://github.com/rick-kilgore))
* 周向涛 ([@taojoe](https://github.com/taojoe))
* Gianmarco De Francisci Morales ([@gdfm](https://github.com/gdfm))
* zhangjinlong ([@BuDongDong](https://github.com/BuDongDong))
* Paul DelRe ([@pdelre](https://github.com/pdelre))
* Zhihui Jiao ([@onlychoice](https://github.com/onlychoice))
* Hari Sekhon ([@harisekhon](https://github.com/harisekhon))
* iBuddha ([@iBuddha](https://github.com/iBuddha))
* Dave Katten ([@dkatten](https://github.com/dkatten))
* Mark Davis ([@markdav](https://github.com/markdav))
* Zhuo Liu ([@zhuoliu](https://github.com/zhuoliu))
* jangie ([@jangie](https://github.com/jangie))
* Hailei Zhang ([@Hailei](https://github.com/Hailei))
* Nikhil Singh ([@snikhil5](https://github.com/snikhil5))
* Paul Poulosky ([@ppoulosk](https://github.com/ppoulosk))
* Brendan W. Lyon ([@lyonbrw](https://github.com/lyonbrw))
* Shyam Rajendran ([@bourneagain](https://github.com/bourneagain))
* Reza Farivar ([@rfarivar](https://github.com/rfarivar))
* Hugo Louro ([@hmcl](https://github.com/hmcl))
* Xin Wang ([@vesense](https://github.com/vesense))
* Aaron Dossett ([@dossett](https://github.com/dossett))
* Charles Chan ([@charleswhchan](https://github.com/charleswhchan))
* Chuanlei Ni ([@chuanlei](https://github.com/chuanlei))
* Xingyu Su ([@errordaiwa](https://github.com/errordaiwa))
* Adrian Seungjin Lee ([@sweetest](https://github.com/sweetest))
* Randy Gelhausen ([@randerzander](https://github.com/randerzander))
* Gabor Liptak ([@gliptak](https://github.com/glibtak))
* Arun Mahadevan ([@arunmahadevan](https://github.com/arunmahadevan))
* Yvonne Ironberg ([@YvonneIronberg](https://github.com/YvonneIronberg))
* Boyang Jerry Peng ([@jerrypeng](https://github.com/jerrypeng))
* Li Wang ([@wangli1426](https://github.com/wangli1426))
* Rohan Agarwal ([@rohanag12](https://github.com/rohanag12))
* Alex Panov ([@alexpanov](https://github.com/alexpanov))
* Sanket Reddy ([@redsanket](https://github.com/redsanket))
* Drew Robb ([@drewrobb](https://github.com/drewrobb))
* Frantz Mazoyer ([@fmazoyer](https://github.com/fmazoyer))
* Dean de Bree ([@ddebree](https://github.com/ddebree))
* Renkai Ge ([@Renkai](https://github.com/Renkai))
* Aaron Coburn ([@acoburn](https://github.com/acoburn))
* Rick Kellogg ([@rmkellogg](https://github.com/rmkellogg))
* Abhishek Agarwal ([@abhishekagarwal87](https://github.com/abhishekagarwal87))
* chenyuzhao ([@danny0405](https://github.com/danny0405))
* Michael Schonfeld ([@schonfeld](https://github.com/schonfeld))
* Matthias J. Sax ([@mjsax](https://github.com/mjsax))
* Erik Weathers ([@erikdw](https://github.com/erikdw))
* Bryan Shell ([@shellbj](https://github.com/shellbj))
* Dmytro Dragan ([@3Dragan](https://github.com/3Dragan))
* Ningyu An ([@jetan9](https://github.com/jetan9))
* Pete Prokopowicz ([@prokopowicz](https://github.com/prokopowicz))
* Priyank Shah ([@priyank5485](https://github.com/priyank5485))
* Joshua Martell ([@jmartell7](https://github.com/jmartell7))
* Matthew Tieman ([@mjtieman](https://github.com/mjtieman))
* Chuck Burgess ([@ashnazg](https://github.com/ashnazg))
* Tom Graves ([@tgravescs](https://github.com/tgravescs))
* Dror Weiss ([@drorweiss](https://github.com/drorweiss))
* Victor Wong ([@victor-wong](https://github.com/victor-wong))
* David Wimsey ([@dwimsey](https://github.com/dwimsey))

## Acknowledgements

YourKit is kindly supporting open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of innovative and intelligent tools for profiling Java and .NET applications. Take a look at YourKit's leading software products: [YourKit Java Profiler](http://www.yourkit.com/java/profiler/index.jsp) and [YourKit .NET Profiler](http://www.yourkit.com/.net/profiler/index.jsp).

