[
https://issues.apache.org/jira/browse/GEODE-9630?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17421086#comment-17421086
]
Udo Kohlmeyer commented on GEODE-9630:
--------------------------------------
Hi there Mario,
I apologize that this was missed in the PR review. As for the RFC, it does not
mention that there would be public setters on the GatewaySender class. My
intent is not to remove / impact the functionality, but rather to make the
changes in a more "correct" manner. e.g not on the public API and possibly
through a framework that can track lifecycles and make the necessary
validations BEFORE the changes are applied.
I think we need to think about issues that changes like this could cause in
production cases. Where one is able to directly access the GatewaySender and
amend its behavior on one server vs the cluster.
What does that mean for the system behavior. Also, if we think about each
component to be more immutable and making changes at runtime to be less of the
norm, the better. Also, without ANY process tracking any runtime changes to the
system, would make it a nightmare to possible track down behavioral changes
that were caused by runtime changes that were not tracked and/or are auditable.
I also believe that we need to come up with a pattern/framework that we can
apply to these kind of runtime changes for all components. WAN/GatewaySender
might unfortunately might be the first implementor of said framework. Either
way, let's work on this, in order to resolve the issues.
> Gateway sender has public setter methods that should not be exposed
> -------------------------------------------------------------------
>
> Key: GEODE-9630
> URL: https://issues.apache.org/jira/browse/GEODE-9630
> Project: Geode
> Issue Type: Improvement
> Components: wan
> Affects Versions: 1.15.0
> Reporter: Udo Kohlmeyer
> Priority: Blocker
> Labels: blocks-1.15.0
>
> Looking at the GatewaySender interface I noticed there are numerous public
> setter methods. Geode should not allow for the ability to directly change
> GatewaySender functionality without proper process.
> This is largely to avoid the introduction of side effects into the system. A
> prime example of this is, the ability to call `setGroupTransactionEvents`,
> which from what I understand should NEVER be allowed to be changed in just 1
> server instead of cluster-wide. This by writing a function and changing the
> setting on only 1 server can run the risk of the whole system behaving
> incorrectly causing failures which would be close to impossible to track down.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)