Summary
Currently every Impulse transform gets its own bootstrap topic (__beam_impulse_<applicationId>_<transformId>), because Kafka Streams rejects registering one topic on two source nodes and a pipeline can contain several Impulses (e.g. an empty Create plus the dummy branch PAssert adds).
Per review of #39380 this can be optimized: keep a single per-application bootstrap topic with one source node, and fan the created element out to all impulse processors from there, instead of one topic per transform.
Part of #18479.
Summary
Currently every Impulse transform gets its own bootstrap topic (
__beam_impulse_<applicationId>_<transformId>), because Kafka Streams rejects registering one topic on two source nodes and a pipeline can contain several Impulses (e.g. an emptyCreateplus the dummy branchPAssertadds).Per review of #39380 this can be optimized: keep a single per-application bootstrap topic with one source node, and fan the created element out to all impulse processors from there, instead of one topic per transform.
Part of #18479.