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

[STALE] Replace Kafka Streams with Confluent Parallel Consumer #509

Closed
wants to merge 26 commits into from
Closed

Conversation

nscuro
Copy link
Member

@nscuro nscuro commented Dec 28, 2023

Note

This PR is superseded by #552, #553, #554, and later PRs. It's still kept open in order to extract more of it.

Description

Kafka Streams has served us well for the initial stage of the project, and helped us get our feet wet in how Kafka clients operate. However, it has several drawbacks that do not make it a good fit for what we currently use it for. Refer to DependencyTrack/hyades#907 for more details.

This PR replaces Kafka Streams with Confluent's Parallel Consumer. From a developer perspective, processor logic remains pretty much the same.

Functionality-wise, this migration enables:

Addressed Issue

Additional Details

Checklist

  • I have read and understand the contributing guidelines
  • This PR fixes a defect, and I have provided tests to verify that the fix is effective
  • This PR implements an enhancement, and I have provided tests to verify that it works as intended
  • This PR introduces changes to the database model, and I have added corresponding update logic
  • This PR introduces new or alters existing behavior, and I have updated the documentation accordingly

Do not handle producing, processors can use the KafkaEventDispatcher in case they need to produce records. Processors may need to produce records of different key-value types (e.g. results and notifications), generics don't really work well in that case.

Signed-off-by: nscuro <[email protected]>
Signed-off-by: nscuro <[email protected]>
`Duration` only works on second level

Signed-off-by: nscuro <[email protected]>
@nscuro nscuro added the enhancement New feature or request label Dec 28, 2023
@nscuro nscuro added this to the 5.4.0 milestone Jan 1, 2024
nscuro added a commit that referenced this pull request Feb 2, 2024
Decoupled from #509

This merely adds an API on top of which processors can be implemented. We can migrate processors one-by-one from Kafka Streams to this API. Majority of this work was already done in #509, but got out of date due to changed priorities. At the very least said PR is good to take inspiration from.

Relates to DependencyTrack/hyades#346
Relates to DependencyTrack/hyades#901
Relates to DependencyTrack/hyades#907

Signed-off-by: nscuro <[email protected]>
nscuro added a commit that referenced this pull request Feb 3, 2024
Decoupled from #509

This merely adds an API on top of which processors can be implemented. We can migrate processors one-by-one from Kafka Streams to this API. Majority of this work was already done in #509, but got out of date due to changed priorities. At the very least said PR is good to take inspiration from.

Relates to DependencyTrack/hyades#346
Relates to DependencyTrack/hyades#901
Relates to DependencyTrack/hyades#907

Signed-off-by: nscuro <[email protected]>
nscuro added a commit that referenced this pull request Feb 5, 2024
Decoupled from #509

This merely adds an API on top of which processors can be implemented. We can migrate processors one-by-one from Kafka Streams to this API. Majority of this work was already done in #509, but got out of date due to changed priorities. At the very least said PR is good to take inspiration from.

Relates to DependencyTrack/hyades#346
Relates to DependencyTrack/hyades#901
Relates to DependencyTrack/hyades#907

Signed-off-by: nscuro <[email protected]>
nscuro added a commit that referenced this pull request Feb 5, 2024
Decoupled from #509

This merely adds an API on top of which processors can be implemented. We can migrate processors one-by-one from Kafka Streams to this API. Majority of this work was already done in #509, but got out of date due to changed priorities. At the very least said PR is good to take inspiration from.

Relates to DependencyTrack/hyades#346
Relates to DependencyTrack/hyades#901
Relates to DependencyTrack/hyades#907

Signed-off-by: nscuro <[email protected]>
nscuro added a commit that referenced this pull request Feb 5, 2024
Decoupled from #509

This merely adds an API on top of which processors can be implemented. We can migrate processors one-by-one from Kafka Streams to this API. Majority of this work was already done in #509, but got out of date due to changed priorities. At the very least said PR is good to take inspiration from.

Relates to DependencyTrack/hyades#346
Relates to DependencyTrack/hyades#901
Relates to DependencyTrack/hyades#907

Signed-off-by: nscuro <[email protected]>
nscuro added a commit that referenced this pull request Feb 5, 2024
Decoupled from #509

This merely adds an API on top of which processors can be implemented. We can migrate processors one-by-one from Kafka Streams to this API. Majority of this work was already done in #509, but got out of date due to changed priorities. At the very least said PR is good to take inspiration from.

Relates to DependencyTrack/hyades#346
Relates to DependencyTrack/hyades#901
Relates to DependencyTrack/hyades#907

Signed-off-by: nscuro <[email protected]>
@nscuro nscuro removed this from the 5.4.0 milestone Feb 5, 2024
@nscuro nscuro changed the title WIP: Replace Kafka Streams with Confluent Parallel Consumer [STALE] Replace Kafka Streams with Confluent Parallel Consumer Feb 14, 2024
@nscuro nscuro closed this Apr 29, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators May 30, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant