<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
    <link rel="icon" href="/favicon.ico" type="image/x-icon">

    <title>Apache Storm</title>

    <!-- Bootstrap core CSS -->
    <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
    <!-- Bootstrap theme -->
    <link href="/assets/css/bootstrap-theme.min.css" rel="stylesheet">

    <!-- Custom styles for this template -->
    <link rel="stylesheet" href="http://fortawesome.github.io/Font-Awesome/assets/font-awesome/css/font-awesome.css">
    <link href="/css/style.css" rel="stylesheet">
    <link href="/assets/css/owl.theme.css" rel="stylesheet">
    <link href="/assets/css/owl.carousel.css" rel="stylesheet">
    <script type="text/javascript" src="/assets/js/jquery.min.js"></script>
    <script type="text/javascript" src="/assets/js/bootstrap.min.js"></script>
    <script type="text/javascript" src="/assets/js/owl.carousel.min.js"></script>
    <script type="text/javascript" src="/assets/js/storm.js"></script>
    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
    <!--[if lt IE 9]>
    <script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
</head>


<body>
<header>
    <div class="container-fluid">
        <div class="row">
            <div class="col-md-5">
                <a href="/index.html"><img src="/images/logo.png" class="logo"/></a>
            </div>
            <div class="col-md-5">

            </div>
            <div class="col-md-2">
                <a href="/downloads.html" class="btn-std btn-block btn-download">Download</a>
            </div>
        </div>
    </div>
</header>
<!--Header End-->
<!--Navigation Begin-->
<div class="navbar" role="banner">
    <div class="container-fluid">
        <div class="navbar-header">
            <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
        </div>
        <nav class="collapse navbar-collapse bs-navbar-collapse" role="navigation">
            <ul class="nav navbar-nav">
                <li><a href="/index.html" id="home">Home</a></li>
                <li><a href="/getting-help.html" id="getting-help">Getting Help</a></li>
                <li><a href="/about/integrates.html" id="project-info">Project Information</a></li>
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="documentation">Documentation <b
                            class="caret"></b></a>
                    <ul class="dropdown-menu">


                        <li><a href="/releases/2.4.0/index.html">2.4.0</a></li>


                        <li><a href="/releases/2.3.0/index.html">2.3.0</a></li>


                        <li><a href="/releases/2.2.1/index.html">2.2.1</a></li>


                        <li><a href="/releases/2.2.0/index.html">2.2.0</a></li>


                        <li><a href="/releases/2.1.1/index.html">2.1.1</a></li>


                        <li><a href="/releases/2.1.0/index.html">2.1.0</a></li>


                        <li><a href="/releases/2.0.0/index.html">2.0.0</a></li>


                        <li><a href="/releases/1.2.4/index.html">1.2.4</a></li>


                        <li><a href="/releases/1.2.3/index.html">1.2.3</a></li>


                    </ul>
                </li>
                <li><a href="/talksAndVideos.html">Talks and Slideshows</a></li>
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="contribute">Community <b
                            class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a href="/contribute/Contributing-to-Storm.html">Contributing</a></li>
                        <li><a href="/contribute/People.html">People</a></li>
                        <li><a href="/contribute/BYLAWS.html">ByLaws</a></li>
                        <li><a href="/Powered-By.html">PoweredBy</a></li>
                    </ul>
                </li>
                <li><a href="/2022/03/25/storm240-released.html" id="news">News</a></li>
            </ul>
        </nav>
    </div>
</div>


<div class="container-fluid">
    <h1 class="page-title">Apache Storm</h1>
    <div class="row">
        <div class="col-md-12">
            <div class="content">
                <div class="container-fluid">
                    <div class="row">
                        <div class="col-md-8">
                            <img src="images/storm-flow.png" class="img-responsive"
                                 title="A Topology with its components" style="padding-left: 50px;"/>
                            <map name="topo">
                                <area shape="rect" href="" coords="60,150,120,210" title="Spout 1">
                                <area shape="rect" href="" coords="60,275,120,335" title="Spout 2">
                                <area shape="rect" href="" coords="385,275,445,335" title="bolt 3">
                                <area shape="rect" href="" coords="385,140,445,200" title="bolt 2">
                                <area shape="rect" href="" coords="385,15,445,75" title="bolt 1">
                                <area shape="rect" href="" coords="715,275,775,335" title="bolt 5">
                                <area shape="rect" href="" coords="695,75,755,135" title="bolt 4">
                            </map>
                        </div>
                        <div class="col-md-4">
                            <div class="box-warning">
                                <h4>Latest News</h4>
                                <!-- test git pubsub -->
                                <ul class="latest-news">
                                    <ul class="latest-news">

                                        <li><a href="/2022/03/25/storm240-released.html">Apache Storm 2.4.0 Released</a>&nbsp;<span
                                                class="small">(25 Mar 2022) </span></li>

                                        <li><a href="/2021/10/14/storm211-released.html">Apache Storm 2.1.1 Released</a>&nbsp;<span
                                                class="small">(14 Oct 2021) </span></li>

                                        <li><a href="/2021/10/11/storm221-released.html">Apache Storm 2.2.1 Released</a>&nbsp;<span
                                                class="small">(11 Oct 2021) </span></li>

                                        <li><a href="/2021/10/11/storm124-released.html">Apache Storm 1.2.4 Released</a>&nbsp;<span
                                                class="small">(11 Oct 2021) </span></li>

                                        <li><a href="/2021/09/27/storm230-released.html">Apache Storm 2.3.0 Released</a>&nbsp;<span
                                                class="small">(27 Sep 2021) </span></li>

                                        <li><a href="/2020/06/30/storm220-released.html">Apache Storm 2.2.0 Released</a>&nbsp;<span
                                                class="small">(30 Jun 2020) </span></li>

                                        <li><a href="/2019/10/31/storm210-released.html">Apache Storm 2.1.0 Released</a>&nbsp;<span
                                                class="small">(31 Oct 2019) </span></li>

                                        <li><a href="/2019/07/18/storm123-released.html">Apache Storm 1.2.3 Released</a>&nbsp;<span
                                                class="small">(18 Jul 2019) </span></li>

                                    </ul>
                                    <p align="right"><a href="/2022/03/25/storm240-released.html" class="btn-std">More
                                        News</a></p>
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-8">
                            <div class="box-primary">
                                <h4>Why use Apache Storm?</h4>
                                <p>Apache Storm is a free and open source distributed realtime computation system.
                                    Apache Storm makes it easy to reliably process unbounded streams of data, doing for
                                    realtime processing what Hadoop did for batch processing. Apache Storm is simple,
                                    can be used with any programming language, and is a lot of fun to use!</p>
                                <p>Apache Storm has many use cases: realtime analytics, online machine learning,
                                    continuous computation, distributed RPC, ETL, and more. Apache Storm is fast: a
                                    benchmark clocked it at over <strong>a million tuples processed per second per
                                        node</strong>. It is scalable, fault-tolerant, guarantees your data will be
                                    processed, and is easy to set up and operate.</p>
                                <p>Apache Storm integrates with the queueing and database technologies you already use.
                                    An Apache Storm topology consumes streams of data and processes those streams in
                                    arbitrarily complex ways, repartitioning the streams between each stage of the
                                    computation however needed. Read more in the tutorial.</p>
                            </div>
                        </div>
                        <div class="col-md-4">
                            <div class="box-info" id="twitter_widget">
                                <!-- <h4>Tweets by @ApacheStorm</h4> -->
                                <a class="twitter-timeline"
                                   href="https://twitter.com/ApacheStorm"
                                   data-widget-id="610710246395265024">
                                    Tweets
                                </a>
                                <script>!function (d, s, id) {
                                    var js, fjs = d.getElementsByTagName(s)[0],
                                        p = /^http:/.test(d.location) ? 'http' : 'https';
                                    if (!d.getElementById(id)) {
                                        js = d.createElement(s);
                                        js.id = id;
                                        js.src = p + "://platform.twitter.com/widgets.js";
                                        fjs.parentNode.insertBefore(js, fjs);
                                    }
                                }(document, "script", "twitter-wjs");
                                isMobile();
                                </script>
                            </div>
                        </div>
                    </div>
                </div>
            </div>


        </div>
    </div>
</div>
<footer>
    <div class="container-fluid">
        <div class="row">
            <div class="col-md-3">
                <div class="footer-widget">
                    <h5>Meetups</h5>
                    <ul class="latest-news">

                        <li><a href="http://www.meetup.com/Apache-Storm-Apache-Kafka/">Apache Storm & Apache Kafka</a>
                            <span class="small">(Sunnyvale, CA)</span></li>

                        <li><a href="http://www.meetup.com/Apache-Storm-Kafka-Users/">Apache Storm & Kafka Users</a>
                            <span class="small">(Seattle, WA)</span></li>

                        <li><a href="http://www.meetup.com/New-York-City-Storm-User-Group/">NYC Storm User Group</a>
                            <span class="small">(New York, NY)</span></li>

                        <li><a href="http://www.meetup.com/Bay-Area-Stream-Processing">Bay Area Stream Processing</a>
                            <span class="small">(Emeryville, CA)</span></li>

                        <li><a href="http://www.meetup.com/Boston-Storm-Users/">Boston Realtime Data</a> <span
                                class="small">(Boston, MA)</span></li>

                        <li><a href="http://www.meetup.com/storm-london">London Storm User Group</a> <span
                                class="small">(London, UK)</span></li>

                        <!-- <li><a href="http://www.meetup.com/Apache-Storm-Kafka-Users/">Seatle, WA</a> <span class="small">(27 Jun 2015)</span></li> -->
                    </ul>
                </div>
            </div>
            <div class="col-md-3">
                <div class="footer-widget">
                    <h5>About Apache Storm</h5>
                    <p>Apache Storm integrates with any queueing system and any database system. Apache Storm's spout
                        abstraction makes it easy to integrate a new queuing system. Likewise, integrating Apache Storm
                        with database systems is easy.</p>
                </div>
            </div>
            <div class="col-md-3">
                <div class="footer-widget">
                    <h5>First Look</h5>
                    <ul class="footer-list">
                        <li><a href="/releases/current/Rationale.html">Rationale</a></li>
                        <li><a href="/releases/current/Tutorial.html">Tutorial</a></li>
                        <li><a href="/releases/current/Setting-up-development-environment.html">Setting up development
                            environment</a></li>
                        <li><a href="/releases/current/Creating-a-new-Storm-project.html">Creating a new Apache Storm
                            project</a></li>
                    </ul>
                </div>
            </div>
            <div class="col-md-3">
                <div class="footer-widget">
                    <h5>Documentation</h5>
                    <ul class="footer-list">
                        <li><a href="/releases/current/index.html">Index</a></li>
                        <li><a href="/releases/current/javadocs/index.html">Javadoc</a></li>
                        <li><a href="/releases/current/FAQ.html">FAQ</a></li>
                    </ul>
                </div>
            </div>
        </div>
        <hr/>
        <div class="row">
            <div class="col-md-12">
                <p align="center">Copyright © 2022 <a href="https://www.apache.org">Apache Software Foundation</a>. All
                    Rights Reserved.
                    <br>Apache Storm, Apache, the Apache feather logo, and the Apache Storm project logos are trademarks
                    of The Apache Software Foundation.
                    <br>All other marks mentioned may be trademarks or registered trademarks of their respective owners.
                </p>
            </div>
        </div>
    </div>
</footer>
<!--Footer End-->
<!-- Scroll to top -->
<span class="totop"><a href="#"><i class="fa fa-angle-up"></i></a></span>

</body>

</html>

