Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kafka Streams? #65

Open
OneCricketeer opened this issue Dec 31, 2019 · 6 comments
Open

Kafka Streams? #65

OneCricketeer opened this issue Dec 31, 2019 · 6 comments
Labels
enhancement New feature or request

Comments

@OneCricketeer
Copy link
Contributor

OneCricketeer commented Dec 31, 2019

Currently this project is plain consumer & producer. Can we get Kafka Streams configuration?

Maybe borrow some ideas from https://github.com/streamthoughts/azkarra-streams

Link streamthoughts/azkarra-streams#28

@natalie-zamani
Copy link
Member

I'd love to support Kafka Streams, it's just a matter of me setting aside the time to do it. I welcome any PRs for this before I can tackle it, though!

@natalie-zamani natalie-zamani added the enhancement New feature or request label Feb 7, 2020
@OneCricketeer
Copy link
Contributor Author

I could probably get started on at least the config objects

@OneCricketeer
Copy link
Contributor Author

OneCricketeer commented Mar 13, 2020

Putting my thoughts here

  1. Keep TopicsConfig the way it is
  2. define generic config map like
streams:
    applicationId:
    ... # all other real kafka configs
    config:  # name TBD
      input-topic: foo
      output-topic: bar

That way, you could start

kstream.from(props.get("input-topic")).map(this::process).to(props.get("output-topic"))

@OneCricketeer
Copy link
Contributor Author

OneCricketeer commented Apr 20, 2020

More thoughts.

Provide ability to chain together processor api via config

stream:
    appid: foo
    source: topic # from this
    output: next # to this 
    steps:
        - step:
           name: filter # human readable 
           type: my-filter # polymorphism type 
        - step: 
            name: convert
            type: my-mapper 
            through: [topic2] # intermediate topics (optional) 
            config:  # optional map 
                prop: foobar 
        

Stream is evaluated top to bottom

@natalie-zamani
Copy link
Member

@Cricket007 Though I like the idea, I think it would be out of the scope of this module to define the steps in YAML, at least initially. A better starting point would be the configuration and management of the streams clients first. What do you think?

@OneCricketeer
Copy link
Contributor Author

I understand. I just wanted to somewhere to write down my thoughts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants