apache / streampipes

Apache StreamPipes - A self-service (Industrial) IoT toolbox to enable non-technical users to connect, analyze and explore IoT data streams.
https://streampipes.apache.org
Apache License 2.0
566 stars 174 forks source link

Migrate processing elements from three class to once class approach #1315

Closed bossenti closed 2 months ago

bossenti commented 1 year ago

Body

Historically, we used a three class based approach to define our pipeline elements (processors and sinks). A while ago we introduced a simplified one class approach to define pipeline elements. Therefore, we need to migrate all existing pipeline elements.

Processors

Old approach A processor is defined by the following three classes:

Examples can be found below.

New approach Only use the following class to define a processing element:

See an example: WelfordChangeDetection Processors to migrate

Sinks

Old approach A sink is defined by the following three classes:

Examples can be found below.

New approach Only use the following class to define a sink:

See an example: RocketMQPublisherSink

Sinks to migrate

Final tasks

How to contribute?

Pick one processor or sink, leave a comment below that you want to work on it This ensures that we keep an overview and tasks are not done multiple times When you have done the refactoring of one component, file us a PR This way we approach to tackle this large refactoring effort step by step

Mentoring

As this issue is marked as good first issue: one of @dominikriemer, @tenthe, or @bossenti are happy to provide help for getting started, just tag (one of) them if you want to start working on this issue and need some help. This issue is ideal for people that are interested in getting a first glimpse on how to implement custom pipeline elements.

StreamPipes Committer

I acknowledge that I am a maintainer/committer of the Apache StreamPipes project.

BudhirajaChinmay commented 1 year ago

@bossenti I would like to work on this issue. I am planning to start with the processor Image Enricher.

bossenti commented 1 year ago

@BudhirajaChinmay great to hear πŸŽ‰ I have created a sub-task for you: https://github.com/apache/streampipes/issues/1330 If you comment there anything (e.g., "assign me"), I should be able to assign you to the issue.

Please let us know, if you need any help :)

BudhirajaChinmay commented 1 year ago

@bossenti according to my understanding, the processors in the stream-apis-processor-image-jvm (Image Enricher, Image Cropper, GenericImageClassification and QrCodeReader) would be interlinked for depreciating the old flow as they are using a particular set of common helper classes. I can work on these together. If this approach seems ok to you, you can assign these four processors to me.

bossenti commented 1 year ago

Sounds legit πŸ‘πŸΌ

flaxxen commented 1 year ago

Hello! Me and some friends have a school project to work with a refactor issue this week and would like to work on the boolean counter migration.

tenthe commented 1 year ago

Great, thank you! πŸš€ Please provide a PR and we can discuss the changes there.

bossenti commented 1 year ago

@flaxxen Great to hear 🀩 I have created an issue for you: https://github.com/apache/streampipes/issues/1366 If you give it a comment, I can assign you to it πŸ™‚ In case you need any help you can ask us there, we are always happy to help!

flaxxen commented 1 year ago

Hi again! Needed another task to fill out the time needed for the week, my group were a bit ahead of me writing so we have already mostly finished the boolean inverter class aswell, could you create another issue for that and we can provide a separate PR?

bossenti commented 1 year ago

@flaxxen awesome πŸš€ Here you go: https://github.com/apache/streampipes/issues/1387

liuxiaocs7 commented 1 year ago

@bossenti I want to complete this task to be familiar with our pipeline elements, please assign StringCounter to me first.

bossenti commented 1 year ago

@liuxiaocs7 Here you go: https://github.com/apache/streampipes/issues/1426 Please comment there, so I can assign you

liuxiaocs7 commented 1 year ago

Hi, @bossenti, StringCounter has completed, i want to work on StringToState and StringTimer this week, could you help me open issues separately, I will take assign in these two issues separately, thanks! :)

bossenti commented 1 year ago

Awesome, here you go :) https://github.com/apache/streampipes/issues/1434 https://github.com/apache/streampipes/issues/1436

liuxiaocs7 commented 1 year ago

Hi, @bossenti, StringToState and StringTimer PRs has created, could you assign KafkaPublisher and Redis sink to me, I want to learn more about the sink component, thanks! :)

tenthe commented 1 year ago

Hi @liuxiaocs7, I created #1457 & #1456. Please comment there so I can assign you the issue.

bossenti commented 2 months ago

All pipeline elements are migrated