Closed johnynek closed 7 years ago
Looks good. I suppose we'll need a version bump for the MergeableStoreFactory
signature change? At least it should be a trivial modification to make sources compatible.
@jnievelt yes, this will be a minor version break.
Looks good overall, one minor comment.
@johnynek Could you cut a release before merging this? This will for sure require changes in our internal repository since there are custom implementations of MergeableStoreFactory that will need to change.
@pankajroark I want to push back on cutting a release. The reason is this:
To turn it around: should Twitter employees publish new jars on each incompatible change for other users to see what the change will be like before a merge? I think that is too much work.
Actually I think there's just one place where we call MergeableStoreFactory#mergeableStore
and it's in a test. The constructions (using from
and apply
) should be source compatible at least. I don't think it's a problem to merge before releasing.
Yeah, this should be ok. Overriding Mergeable is common, MergeableStoreFactory seems to be created mostly with the help of factory function. By bad in confusing the two.
On cutting a release on breaking changes, it was just an effort on my part to make my life easier. I'm planning to do a summingbird release soon and was hoping to do least amount of code changes in our repo, the last release turned out to be very complicated due to the MemoryPlatform changes. But it's not a big deal. In general I agree I wouldn't expect a release of summingbird on every breaking change.
I have a +1 on this now, @pankajroark @jnievelt ?
closes #677
The issue is that it is easy to have the semigroup get out of sync between the
implicit
semigroup in theProducer
graph, and the captured value for storm. This is not totally fixed, since when using a single store as a service and a store, we still need to capture the semigroup, butleftJoin
does not have access to that. We could fix that walking the graph and finding the semigroup at the location of thesumByKey
. We can do that in a later PR.