Hi,

thanks for creating the wiki page Dominik.
I think this is a good place to discuss the solution.

Philipp

> On 19. Jul 2020, at 22:05, Dominik Riemer <rie...@apache.org> wrote:
> 
> Hi,
> 
> I created a wiki page and added our initial thoughts:
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=158868087
> 
> I'll go through the existing wrapper implementation and add any ideas to the 
> wiki. If you have any ideas, feel free to edit the page!
> 
> Dominik
> 
> -----Original Message-----
> From: Patrick Wiener <wie...@apache.org> 
> Sent: Friday, July 17, 2020 7:35 AM
> To: dev@streampipes.apache.org
> Subject: Re: Adding window semantics to the sdk/core
> 
> I also tend towards option 2. It makes it more intuative to develop windowed 
> operations by having a dedicated windowed event processor.
> 
> We can collect the design choices etc in the wiki and discussion points in 
> the wiki.
> 
> Patrick
> 
>> Am 16.07.2020 um 22:55 schrieb Philipp Zehnder <zehn...@apache.org>:
>> 
>> Hi,
>> 
>> +1 for creating a wiki page and collecting all the requirements and 
>> functionalities.
>> 
>> Philipp
>> 
>>> On 16. Jul 2020, at 20:00, Dominik Riemer <rie...@apache.org> wrote:
>>> 
>>> Hi,
>>> 
>>> I'm also leaning towards option 2 - we could introduce new engine and 
>>> controller classes for windowed event processors (e.g., 
>>> WindowedDataProcessor) which handle the windowing logic internally and only 
>>> expose the higher-level methods to users (as you proposed, 
>>> onCurrentEvent...). Window parameters could be automatically added to the 
>>> controller without further configuration. 
>>> Probably the biggest hurdle is to introduce an API design that works for 
>>> all available wrappers, without re-implementing a new higher-level engine. 
>>> But as Philipp said, it probably makes sense to start with one of the 
>>> lightweight wrappers such as Java or Siddhi. 
>>> Should we create a wiki page to collect design requirements for such a 
>>> feature?
>>> 
>>> Dominik
>>> 
>>> -----Original Message-----
>>> From: Philipp Zehnder <zehn...@apache.org>
>>> Sent: Wednesday, July 15, 2020 4:13 PM
>>> To: Grainier Perera <grain...@apache.org>
>>> Cc: dev@streampipes.apache.org
>>> Subject: Re: Adding window semantics to the sdk/core
>>> 
>>> Hi Grainier,
>>> 
>>> That's a very good point.
>>> I am leaning towards proposal 2, because if we have a separate PE, the user 
>>> must be aware of windowing and how to use windows. 
>>> I think it is easier for the user to configure the relevant parameters 
>>> directly in the processor configuration itself. Whats your opinion on that?
>>> However, I'm afraid that we will then have to implement all functionalities 
>>> twice, one version for single values and one version for the windowed 
>>> version (e.g. numerical filter).
>>> Perhaps we can find a good solution for this. (e.g. make the window 
>>> function optional).
>>> 
>>> Maybe we can also make a list of processors that we think need  this 
>>> functionality?
>>> The first thing that came to my mind was the aggregation component. 
>>> Currently we only have a Flink version of it, and I think it would be very 
>>> helpful to have a lighter version as well (e.g. Java, or Siddhi).
>>> 
>>> Philipp
>>> PS: The JS Evaluator is really awesome, I use it a lot and it’s a big time 
>>> saver!
>>> 
>>>> On 15. Jul 2020, at 07:06, Grainier Perera <grain...@apache.org> wrote:
>>>> 
>>>> Hi all,
>>>> 
>>>> Hope you are doing well. I'm starting this thread to discuss $title. As we 
>>>> discussed in the mail thread [1], having a common window semantic that can 
>>>> be leveraged by every PE can be very useful.
>>>> 
>>>> I'm thinking of two ways to achieve the same; Introduce a dedicated 
>>>> Window PE which can be used before any existing PE.
>>>> No need for API changes.
>>>> But, might have to flag event in a way for the next processor to identify, 
>>>> to which window the event belongs to (i.e with sliding windows, etc...).
>>>> So, have to change the processing logic of existing PEs to check event 
>>>> flag and process accordingly. 
>>>> So all the existing PEs might not work with window semantics. In 
>>>> that case, we need a way to show window compatible PEs (because, 
>>>> having a window before a normal PE might result in un-expected outputs) 
>>>> Introduce windowed EventProcessor/EventSink APIs which allows users to 
>>>> write their own windowed extensions (i.e aggregators, etc...) No need for 
>>>> event flagging. Can introduce API methods like onCurrentEvent, 
>>>> onExpiredEvent, onResetEvent, etc...
>>>> Need API changes/refactoring in EventProcessor/EventSink, as well as in 
>>>> existing PEs.
>>>> Need a way to expose the window related parameters through existing PEs 
>>>> DataProcessorDescription.
>>>> Since there're pros/cons to both, what do you think is the best approach? 
>>>> Or is there any other approach that we can try out?
>>>> 
>>>> [1] PE to rate-limit events
>>>> 
>>>> Grainier Perera.
>>> 
>>> 
>> 
> 
> 

Reply via email to