LLMpediaThe first transparent, open encyclopedia generated by LLMs

Storm (software)

Generated by GPT-5-mini
Note: This article was automatically generated by a large language model (LLM) from purely parametric knowledge (no retrieval). It may contain inaccuracies or hallucinations. This encyclopedia is part of a research project currently under review.
Article Genealogy
Parent: Apache Spark Hop 4
Expansion Funnel Raw 49 → Dedup 0 → NER 0 → Enqueued 0
1. Extracted49
2. After dedup0 (None)
3. After NER0 ()
4. Enqueued0 ()
Storm (software)
NameStorm
DeveloperBackType / Twitter / Apache Software Foundation
Released2011
Programming languageJava
Operating systemCross-platform
GenreDistributed stream processing
LicenseApache License 2.0

Storm (software) is a distributed, fault-tolerant stream processing system designed for real-time computation on unbounded data streams. Originally developed at BackType and open-sourced by Twitter before becoming an Apache Software Foundation project, Storm provides primitives for building low-latency, high-throughput data pipelines that integrate with systems such as Apache Kafka, Hadoop, Cassandra (database), Redis, and Amazon Web Services. The project influenced subsequent stream-processing frameworks including Apache Flink, Apache Samza, and Google Cloud Dataflow.

Overview

Storm was created to address continuous computation needs for web-scale applications, enabling developers to express real-time analytics, ETL, and online machine learning workflows. It executes topologies composed of producers and processors across a cluster coordinated using systems like Apache ZooKeeper and deployed on infrastructures such as Amazon EC2, Google Cloud Platform, and on-premises datacenters managed with Kubernetes. The architecture emphasizes at-least-once processing semantics by default and integrates with messaging systems including RabbitMQ and Apache Pulsar for input/output connectivity.

Architecture and Components

Storm’s core runtime is organized around a master process and distributed workers. The master, historically called Nimbus, performs scheduling and coordination with Apache ZooKeeper for state and leader election, while Supervisor nodes host worker processes that run Java Virtual Machines executing the user code. Topologies are DAGs composed of spouts (sources) and bolts (processing units), and internal components include task executors, stream groupings, and the shuffle service. Persistence and stateful processing are commonly implemented using external systems such as Apache HBase, MongoDB, PostgreSQL, or MySQL for durable storage, and integration adapters exist for platforms like ElasticSearch and Prometheus for metrics and observability.

Programming Model and APIs

Developers express computation as topologies using language bindings in Java, Clojure, and community-supported ports for Python and Scala. The spout-bolt model exposes APIs for emitting tuples, anchoring messages for reliability tracking, and acknowledging tuples to implement at-least-once semantics. Storm includes APIs for stream groupings (shuffle, fields, all, global) and supports windowed computations through extensions, enabling time- and count-based windows often required in fraud detection or monitoring pipelines. Clients commonly integrate with libraries from Twitter for stream handling, and with machine learning toolkits such as Apache Mahout and Scikit-learn via JNI or RPC for model scoring.

Deployment and Scalability

Storm topologies are packaged and submitted to clusters where the scheduler assigns executors and tasks to workers; schedulers have been extended to support custom strategies, rack-awareness, and weight-based placement to run on heterogeneous clusters. Operators deploy Storm on virtualized environments like VMware ESXi or container orchestration platforms such as Kubernetes and Docker Swarm to achieve elasticity. Scalability patterns include adding worker nodes, tuning parallelism hints for spouts and bolts, and employing back-pressure via upstream throttling with brokers like Apache Kafka or Amazon Kinesis. Large-scale deployments often integrate with monitoring stacks based on Grafana, InfluxDB, and Prometheus.

Use Cases and Adoption

Storm has been used for real-time analytics, anomaly detection, online feature extraction for recommendation systems, clickstream processing, and alerting pipelines at organizations ranging from startups to enterprises. Notable operational scenarios include social media feed aggregation, cybersecurity event processing integrated with Splunk or ELK Stack, and IoT telemetry ingestion alongside platforms like Azure IoT Hub. The ecosystem includes connectors and integrations for data lakes built on Apache Hadoop and object stores like Amazon S3 for downstream archival.

Performance and Benchmarking

Storm’s performance characteristics emphasize low end-to-end latency, linear throughput scaling with added workers under well-balanced topologies, and predictable recovery behavior after failures. Benchmarking compares Storm against contemporaries such as Apache Samza, Apache Flink, and proprietary services like Google Cloud Dataflow or Amazon Kinesis Data Analytics using workloads such as log processing and windowed aggregations. Performance tuning typically involves JVM configuration, network socket tuning, batching at spouts, and optimizing serialization with libraries like Kryo or Protocol Buffers, with metrics collected via StatsD or Dropwizard for capacity planning.

Security and Fault Tolerance

Storm incorporates fault tolerance via tuple tracking, task retries, and worker restarts coordinated by Apache ZooKeeper; exactly-once semantics require external transactional sinks or idempotent operations against storage systems like Apache HBase or Cassandra (database). Security features include integration with Kerberos for authentication, Transport Layer Security for encrypted traffic, and role-based access control when paired with tools such as Apache Ranger or Apache Knox. Operational hardening commonly leverages secrets management solutions like HashiCorp Vault and logging/auditing with Splunk or ELK Stack to meet compliance standards.

Category:Stream processing Category:Apache Software Foundation projects Category:Distributed computing