Storm is a real-time distributed data processing system for processing data coming in at high velocities. It can process millions of records per second and is particularly useful for applications where millisecond-level latency is essential (for example, security threat detection, fraud detection, operational monitoring, and so on).
A typical Storm cluster has three types of nodes:
Nimbus or master node: This is responsible for submitting and distributing the computations for execution apart from handling tasks such as launching slave nodes and monitoring the execution
ZooKeeper node: This is responsible for coordinating the cluster
Supervisor node: This is responsible for starting and stopping slave nodes based on the instructions sent by the Nimbus node