Hi Daniel,

I'd like to resurface this KIP in case you're still interested in pursuing
it. I know it's been a while since you published it, and it hasn't received
much attention, but I'm hoping we can give it a try now and finally put
this long-standing bug to rest. To that end, I have some thoughts about the
proposal. This isn't a complete review, but I wanted to give enough to get
the ball rolling:

1. Some environments with firewalls or strict security policies may not be
able to bring up a REST server for each MM2 node. If we decide that we'd
like to use the Connect REST API (or even just parts of it) to address this
bug with MM2, it does make sense to eventually make the availability of the
REST API a hard requirement for running MM2, but it might be a bit too
abrupt to do that all in a single release. What do you think about making
the REST API optional for now, but noting that it will become required in a
later release (probably 4.0.0 or, if that's not enough time, 5.0.0)? We
could choose not to bring the REST server for any node whose configuration
doesn't explicitly opt into one, and maybe log a warning message on startup
if none is configured. In effect, we'd be marking the current mode (no REST
server) as deprecated.

2. I'm not sure that we should count out the "Creating an internal-only
derivation of the Connect REST API" rejected alternative. Right now, the
single source of truth for the configuration of a MM2 cluster (assuming
it's being run in dedicated mode, and not as a connector in a vanilla
Connect cluster) is the configuration file used for the process. By
bringing up the REST API, we'd expose endpoints to modify connector
configurations, which would not only add complexity to the operation of a
MM2 cluster, but even qualify as an attack vector for malicious entities.
Thanks to KIP-507 we have some amount of security around the internal-only
endpoints used by the Connect framework, but for any public endpoints, the
Connect REST API doesn't come with any security out of the box.

3. Small point, but with support for exactly-once source connectors coming
out in 3.3.0, it's also worth noting that that's another feature that won't
work properly with multi-node MM2 clusters without adding a REST server for
each node (or some substitute that accomplishes the same goal). I don't
think this will affect the direction of the design discussion too much, but
it does help strengthen the motivation.

Cheers,

Chris

On 2021/02/18 15:57:36 Dániel Urbán wrote:
> Hello everyone,
>
> * Sorry, I meant KIP-710.
>
> Right now the MirrorMaker cluster is somewhat unreliable, and not
> supporting running in a cluster properly. I'd say that fixing this would
be
> a nice addition.
> Does anyone have some input on this?
>
> Thanks in advance
> Daniel
>
> Dániel Urbán <ur...@gmail.com> ezt írta (időpont: 2021. jan. 26., K,
> 15:56):
>
> > Hello everyone,
> >
> > I would like to start a discussion on KIP-709, which addresses some
> > missing features in MM2 dedicated mode.
> >
> >
https://cwiki.apache.org/confluence/display/KAFKA/KIP-710%3A+Full+support+for+distributed+mode+in+dedicated+MirrorMaker+2.0+clusters
> >
> > Currently, the dedicated mode of MM2 does not fully support running in a
> > cluster. The core issue is that the Connect REST Server is not included
in
> > the dedicated mode, which makes follower->leader communication
impossible.
> > In some cases, this results in the cluster not being able to react to
> > dynamic configuration changes (e.g. dynamic topic filter changes).
> > Another smaller detail is that MM2 dedicated mode eagerly resolves
config
> > provider references in the Connector configurations, which is
undesirable
> > and a breaking change compared to vanilla Connect. This can cause an
issue
> > for example when there is an environment variable reference, which
contains
> > some host-specific information, like a file path. The leader resolves
the
> > reference eagerly, and the resolved value is propagated to other MM2
nodes
> > instead of the reference being resolved locally, separately on each
node.
> >
> > The KIP addresses these by adding the Connect REST Server to the MM2
> > dedicated mode for each replication flow, and postponing the config
> > provider reference resolution.
> >
> > Please discuss, I know this is a major change, but also an important
> > feature for MM2 users.
> >
> > Daniel
> >
>

Reply via email to