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-project.net](http://storm-project.net). 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.incubator.apache.org](mailto:user@storm.incubator.apache.org).

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

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

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

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

You can also [browse the archives of the storm-dev mailing list](http://mail-archives.apache.org/mod_mbox/incubator-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.incubator.org](user@storm.apache.incubator.org). 

If you are building storm from source, developing new features, or otherwise hacking storm source code, then [dev@storm.incubator.apache.org](dev@storm.incubator.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))

## 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))
* Kyle Nusbaum ([@knusbaum](https://github.com/knusbaum))
* 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))
* Jungtaek Lim ([@HeartSaVioR](https://github.com/HeartSaVioR))
* 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))
* 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))

## 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).
