Thanks for the KIP John.

One initial comments about the last example "Bounded lateness": For a
non-windowed KTable bounding the lateness does not really make sense,
does it?

Thus, I am wondering if we should allow `suppressLateEvents()` for this
case? It seems to be better to only allow it for windowed-KTables.


-Matthias


On 6/27/18 8:53 AM, Ted Yu wrote:
> I noticed this (lack of primary parameter) as well.
> 
> What you gave as new example is semantically the same as what I suggested.
> So it is good by me.
> 
> Thanks
> 
> On Wed, Jun 27, 2018 at 7:31 AM, John Roesler <j...@confluent.io> wrote:
> 
>> Thanks for taking look, Ted,
>>
>> I agree this is a departure from the conventions of Streams DSL.
>>
>> Most of our config objects have one or two "required" parameters, which fit
>> naturally with the static factory method approach. TimeWindow, for example,
>> requires a size parameter, so we can naturally say TimeWindows.of(size).
>>
>> I think in the case of a suppression, there's really no "core" parameter,
>> and "Suppression.of()" seems sillier than "new Suppression()". I think that
>> Suppression.of(duration) would be ambiguous, since there are many durations
>> that we can configure.
>>
>> However, thinking about it again, I suppose that I can give each
>> configuration method a static version, which would let you replace "new
>> Suppression()." with "Suppression." in all the examples. Basically, instead
>> of "of()", we'd support any of the methods I listed.
>>
>> For example:
>>
>> windowCounts
>>     .suppress(
>>         Suppression
>>             .suppressLateEvents(Duration.ofMinutes(10))
>>             .suppressIntermediateEvents(
>>                 IntermediateSuppression.emitAfter(Duration.ofMinutes(10))
>>             )
>>     );
>>
>>
>> Does that seem better?
>>
>> Thanks,
>> -John
>>
>>
>> On Wed, Jun 27, 2018 at 12:44 AM Ted Yu <yuzhih...@gmail.com> wrote:
>>
>>> I started to read this KIP which contains a lot of materials.
>>>
>>> One suggestion:
>>>
>>>     .suppress(
>>>         new Suppression()
>>>
>>>
>>> Do you think it would be more consistent with the rest of Streams data
>>> structures by supporting `of` ?
>>>
>>> Suppression.of(Duration.ofMinutes(10))
>>>
>>>
>>> Cheers
>>>
>>>
>>>
>>> On Tue, Jun 26, 2018 at 1:11 PM, John Roesler <j...@confluent.io> wrote:
>>>
>>>> Hello devs and users,
>>>>
>>>> Please take some time to consider this proposal for Kafka Streams:
>>>>
>>>> KIP-328: Ability to suppress updates for KTables
>>>>
>>>> link: https://cwiki.apache.org/confluence/x/sQU0BQ
>>>>
>>>> The basic idea is to provide:
>>>> * more usable control over update rate (vs the current state store
>>> caches)
>>>> * the final-result-for-windowed-computations feature which several
>> people
>>>> have requested
>>>>
>>>> I look forward to your feedback!
>>>>
>>>> Thanks,
>>>> -John
>>>>
>>>
>>
> 

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to