Hi Yuto,

That is a good suggestion, the child index is not very intuitive from
programmer's view and we can even consider replacing it with the processor
name instead of overloading it. Could you file a JIRA?

Also I am wondering if you have looked at the higher-level Streams DSL, and
if yes could let me know what are the limitations from using that APIs in
your case?

Guozhang

On Fri, Apr 1, 2016 at 1:20 AM, Yuto KAWAMURA <kawamuray.dad...@gmail.com>
wrote:

> When I tried to implement a task which does kinda dispatching to
> downstream processors or sinks, looks like relying on
> context.forward(K, V, int childIndex) is the only way now.
> I have a question why this method implemented using childIndex(which
> is just an index of children "List" that based on order of
> builder.addProcessor() call) instead of child name(first argument to
> add{Processor,Sink}).
> I wanna ask what is the concrete use case of forward(K, V, int
> childIndex) and is it makes sense to introduce another overload:
> forward(K, V, String childName) for much handy use.
> Currently I have a use-case like this in my mind:
> ```
> builder.addProcessor("DispatchProcess", new
> DispatchProcessorSupplier(), "Source");
> builder.addProcessor("Process-A", new ProcessorASupplier(),
> "DispatchProcess");
> builder.addProcessor("Process-B", new ProcessorBSupplier(),
> "DispatchProcess");
>
> // in process(key, value)
> if ("key-for-A".equals(key)) {
>     context.forward(key, value, "Process-A");
> } else if ("key-for-B".equals(key)) {
>     context.forward(key, value, "Process-B");
> }
> ```
>



-- 
-- Guozhang

Reply via email to