Hi Ismael, Impulse is a primitive necessary for the Portability world, where sources do not exist. Impulse is the only possible root of the pipeline, it emits a single empty byte array, and it's all DoFn's and SDF's from there. E.g. when using Fn API, Read.from(BoundedSource) is translated into: Impulse + ParDo(emit source) + ParDo(call .split()) + reshuffle + ParDo(call .createReader() and read from it). Agree that it makes sense to document it somewhere on the portability page.
On Fri, May 18, 2018 at 7:21 AM Jean-Baptiste Onofré <j...@nanthrax.net> wrote: > Fully agree. > > I already started to take a look. > > Regards > JB > > On 18/05/2018 16:12, Ismaël Mejía wrote: > > I have seen multiple mentions of 'Impulse' in JIRAs and some on other > > discussions, but have not seen any document or concrete explanation on > > what's Impulse and why we need it. This seems like an internal > > implementation detail but it is probably a good idea to explain it > > somewhere (my excuses if this is in some document and I missed it). > > >