100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace
DevOps

Apache Storm

By the Apache Software Foundation

AdvancedFramework8.9K learners

Apache Storm is an open-source, real-time distributed stream computation system designed to process high-velocity, unbounded data streams with low latency, arranging processing logic as a topology of spouts and bolts.

Definition

Apache Storm is an open-source, real-time distributed stream computation system designed to process high-velocity, unbounded data streams with low latency, arranging processing logic as a topology of spouts and bolts.

Overview

Storm was created by Nathan Marz at the startup BackType, which was acquired by Twitter in 2011; Twitter open-sourced Storm shortly after, and it was donated to the Apache Software Foundation, graduating to a top-level project in 2014. A Storm application is defined as a topology: a directed graph where spouts pull data in from an external source (commonly Apache Kafka) and bolts perform processing, filtering, aggregation, or writing to a destination. Unlike micro-batch systems, Storm processes records individually as they arrive, giving it very low processing latency, and by default guarantees at-least-once delivery, with an optional Trident API layered on top for exactly-once, stateful processing. Storm competes with newer stream-processing engines such as Apache Spark Structured Streaming and Apache Flink; in recent years many teams evaluating new stream-processing stacks have gravitated toward Flink or Spark for their broader ecosystems and unified batch/streaming APIs, so Storm today is more often encountered in existing systems than chosen for brand-new projects. Where ultra-low latency, record-by-record processing is the priority, Storm remains a proven, battle-tested option.

Key Features

  • Topology model of spouts (data sources) and bolts (processing units)
  • True record-at-a-time stream processing for low latency
  • At-least-once processing guarantees by default
  • Trident API for stateful, exactly-once processing
  • Horizontal scalability across worker nodes
  • Language-agnostic component definition via Thrift
  • Fault tolerance through supervisor and worker process monitoring

Use Cases

Real-time analytics dashboards
Fraud and anomaly detection on live event streams
Continuous ETL between systems
Sensor and IoT data processing
Real-time recommendation and personalization feeds

Frequently Asked Questions