A non-transactional topology
In a non-transactional topology, a spout emits a batch of tuples and doesn't guarantees about what is in each batch. By processing behavior, we can divide the pipeline into two categories:
- At-most-one-processing: In this type of topology, failed tuples are not retried. Hence, the spout does not wait for an acknowledgment.
- At-least-once-processing: The failed tuples are re-entered into the processing pipeline. Hence, this type of topology guarantees that every tuple entered in to the processing pipeline must be processed at least once. The retried logic is handled at the spout end because the spout is the source of tuples in the Trident topology.
Let's understand how we can write a non-transactional spout by implementing ...