[ 
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)

Reply via email to