With storm's reliable spouts, it's possible to replay a tuple stream which is failed to process. As I understand it is only possible to replay a stream from a spout. Is it possible to replay a stream emitted from a Bolt, if that stream was failed to processed by the next bolt? i.e If "Bolt B" is unavailable due to some reason, does "Bolt A" capable of replay the "Stream 2" once "Bolt B" becomes available again?
1
votes
1 Answers
2
votes
This is not supported by Storm.
If Bolt B fails, a replay can only be done from the Spout. Let's assume Spout emits a tuple t1 that is processed by Bolt A and results in an output tuple t2. If t2 cannot be processed by Bolt B, the Spout can re-emit tuple t1, which is processed a second time by Bolt A resulting again in output tuple t2.
Of course, Bolt A must produce the same output tuple t2 when processing t1 a second time. Furthermore, the processing order is changed. The Spout can emit other tuples before re-emitting t1, ie, Bolt B might receive tuples in different order after failure (t2 will most likely not be the first tuple when Bolt B is recovered).
