You would need:

Spout-1 --(direct-grouping)--> Bolt-1 --(direct-grouping)--> Bolt-2
--(direct grouping, non-default stream)--> Bolt 1

Task IDs are numbered from 0 (pretty sure it's 0, if not it's from 1) for
each component.  Therefore Spout 1 task IDs are 0 to (n-1), Bolt 1 task IDs
are 0 to (m-1), etc where n = number of Spout 1 tasks and m = number of
Bolt 1 tasks.

If you want a cyclic graph in your topology I believe you have to use a
non-default stream.

On Wed, Nov 4, 2015 at 2:22 PM, Nick R. Katsipoulakis <[email protected]
> wrote:

> Hello,
>
> I have a question regarding direct streaming and sending a tuple from a
> downstream node to its upstream node. To be more precise, let us assume we
> have the following topology:
>
> Spout-1 --(direct-grouping)--> Bolt-1 --(direct-grouping)--> Bolt-2
>
> Can Bolt-2 call emitDirect() and send a tuple back to Bolt-1 (by getting
> the task-id from tuple.getSourceTask() )? If not, is it because of the
> general architecture of Storm?
>
> Thanks,
> Nick
>

Reply via email to