Github user ptgoetz commented on a diff in the pull request:

    https://github.com/apache/storm/pull/1595#discussion_r72513531
  
    --- Diff: conf/defaults.yaml ---
    @@ -259,6 +259,10 @@ topology.disruptor.batch.size: 100
     topology.disruptor.batch.timeout.millis: 1
     topology.disable.loadaware: false
     topology.state.checkpoint.interval.ms: 1000
    +topology.metrics.aggregate.per.worker: false
    --- End diff --
    
    @harshach you are correct, there are no *explicit* interface changes. But 
there is an *implicit* contract with existing implementations that expect 
`DataPoint.value` to be a specific type, and that contract is broken when this 
flag is set to `true`. So this is *effectively* an API change that's just 
hidden by the fact that it is configurable. 
    
    > Btw, we should try avoiding to address current metrics feature and start 
re-designing new metrics feature. To tell the truth, this feature is actually 
closer to a hot-fix instead of improvement.
    
    I agree with @HeartSaVioR that this approach is less than optimal and very 
brittle. If we're going to break backward compatibility, we should go ahead and 
improve the design of the API.
    
    I really don't like the idea that a configuration change can effectively 
change an API. I'd rather change the API to be more explicit in terms of data 
types sent to the implementation.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to