Thanks for the KIP! The proposal here sounds like the right direction to go
in for me, but I'll be interested to hear what others think.

I'm wondering if we should offer additional StreamsBuilder & Topology
constructors that accept a plain config map (or Properties) alongside the
StreamsConfig constructors. I'd advocate for providing only the
Map/Properties variety except that I'm pretty sure the StreamsConfig
options are needed for dependency injection and were requested by users of
Spring

Also, just to list out some alternatives, we could go in a different
direction completely by making TopologyConfig a true config in its own
right, and moving all the topology-specific configs from StreamsConfig to
TopologyConfig (ie removing them from StreamsConfig completely)

On the one hand, it might make more sense to keep configs separated and
group them by where they need to be applied. On the other hand I wouldn't
want to start proliferating config classes since I think this makes
discovery more difficult and increases the API surface area. So personally,
I think it's sufficient to just add the check and warning log described in
the KIP

We could also deprecate the default constructor for TopologyStreamsBuilder
to force people to pass configs in. I'm honestly fine either way, as I
don't really think it's much of a burden to ask users to pass configs into
one more place, but since the new check should help prevent users from
accidentally forgetting to pass the topology-specific configs into the
Topology/StreamsBuilder, then deprecating the default constructors seem
like na unnecessary step.

Sébastien -- My only other feedback for you on the KIP would be to list
these under the Rejected Alternatives section so we know what the range of
options are.

Thanks!
-Sophie

On Wed, Feb 26, 2025 at 11:57 PM Sebastien Viale <
sebastien.vi...@michelin.com> wrote:

> Hi Everyone,
>
> I would like to start a discussion on KIP-1138: Clean up TopologyConfig
> and API for supplying configs needed by the topology<
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-1138%3A+Clean+up+TopologyConfig+and+API+for+supplying+configs+needed+by+the+topology
> >
>
> This proposal aims to simplify Kafka Streams configuration by unifying
> APIs and ensuring topology-specific configs (e.g., topology.optimization,
> processor.wrapper.class) are correctly applied to prevent silent
> misconfigurations.
>
> Regards,
>
> Sébastien
>
>

Reply via email to