Developing Apache Storm Applications
This chapter focuses on several aspects of Storm application development. Throughout this guide you will see references to core Storm and Trident. Trident is a layer of abstraction built on top of Apache Storm, with higher-level APIs. Both operate on unbounded streams of tuple-based data, and both address the same use cases: real-time computations on unbounded streams of data.
Here are some examples of differences between core Storm and Trident:
-
The basic primitives in core storm are bolts and spouts. The core data abstraction in Trident is the stream.
-
Core Storm processes events individually. Trident supports the concept of transactions, and processes data in micro-batches.
-
Trident was designed to support stateful stream processing, although as of Apache Storm 1.0, core Storm also supports stateful stream processing.
-
Core Storm supports a wider range of programming languages than Trident.
-
Core Storm supports at-least-once processing very easily, but for exactly-once semantics, Trident is easier (from an implementation perspective) than using core Storm primitives.