Chapter 4. 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.
A complete introduction to the Storm API is beyond the scope of this documentation. However, the following sections provide an overview of core Storm and Trident concepts. See Apache Storm documentation for an extensive description of Apache Storm concepts.