-
Notifications
You must be signed in to change notification settings - Fork 102
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
Azure EventHubs offset checkpoint store #1662
Comments
To get the rough understanding what I have in mind when it comes to Option A, you check this commit. |
If you override the source task it will be override once we Regen the connector from the kamelets released catalog. My suggestion would be to mark the parameters as optional and not required, but this would require defining a bean with the checkpoint store. Otherwise the workflow will fail. Create another kamelet is a bit overkilling for this. |
The problem is that Another problem is how to apply |
OK I think I know how this can be implemented now.
I still need some time to put it all together, but I think I got the rough idea how it can be setup without need for modification of the generated code. |
The camel-azure-eventhubs-source-kafka-connector currently requires configuration of the Azure Blob Storage, used for storing the checkpoints.
I think there should be an option to store checkpoints in the Kafka Connect offset topic. The source connector state is usually stored there by including the source offset into the
SourceRecord
with the given source partition used as key for lookup.The checkpoints can then be loaded on the task start using the
OffsetStorageReader
without need for external storage.As far as I understand, the related Camel Component allows to set the a custom
CheckpointStore
bean instance to be used by the Azure SDK client. So it should be possible to provide theCheckpointStore
implementation based on Kafka Connect API and use it instead of theBlobCheckpointStore
.I was thinking of doing so with a PR but I'm not sure how to deal with the Kamelet, which currently requires that all parameters related to the Blob Storage are set.
In general I see two possible options:
Option A. Make Azure Blob parameters in the Kamelet optional
In this option, the
CamelAzureeventhubssourceSourceTask
can be adopted to initializeCheckpointStore
based on the offsets if the Blob storage is not configured.The
CamelSourceTask
could be extended to provide option to customize the createdEndpoint
so the initializedCheckpointStore
by the task on start can be set viaEventHubsEndpoint
e.g.eventHubsEndpoint.getConfiguration().setCheckpointStore(checkpointStore)
Option B. Add new Kamelet variant for Azure EventHubs source without parameters for Blob storage
This options works similarly to Option A, just as a dedicated connector and dedicated Kamelet descriptor.
What do you think about the proposed solutions ?
The text was updated successfully, but these errors were encountered: