This course will teach Apache Storm – a popular event processing framework – to students.

What You Will Learn

  • Concepts & architecture
  • How to install and configure
  • Programming
  • Logging & Metrics
  • Designing Streaming systems




two days


Lectures and hands-on labs. (50%   50%)


  • comfortable with Java programming language (programming exercises are in java)
  • comfortable in Linux environment (be able to navigate Linux command line, edit files using vi / nano)

Lab environment

Zero Install: There is no need to install Hadoop software on students’ machines! A lab environment in the cloud will be provided for students.

Students will need the following

  • a SSH client (Linux and Mac already have ssh clients, for Windows Putty is recommended)
  • a browser to access the cluster. We recommend Chrome browser

Detailed outline

Introduction to Streaming Systems

    • Fast data
    • Streaming architecture
    • Lambda architecture
    • Message queues
    • Streaming processors

Introduction to Storm

    • Architecture
    • Sources / Sinks
    • Tuples
    • Spout
    • Bolts
    • Topologies

Programming With Storm

    • Storm Java API
    • Bolt / Spout / Topology APIs
    • Lab: Programming Storm

Topology Design

    • Mapping fields
    • Parsing fields in Bolts
    • Scalability and Parallelism
    • Executors and Tasks
    • Creating robust topologies

Logging & Metrics

    • Logging in Storm application
    • Metrics : capturing and analyzing


    • Intro to Trident
    • Trident operations

Designing and Tuning Storm Systems

    • Kafka & Storm
    • Topology design
    • Tuning Storm systems