-
-
Notifications
You must be signed in to change notification settings - Fork 355
Add Kinesis Binder for Spring Cloud Stream #1520
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
base: main
Are you sure you want to change the base?
Conversation
MatejNedic
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
Thanks @artembilan
|
I've just added DynamoDB Streams support over Kinesis. Another question: what Maven goal should I call to reformat the code properly? Thanks |
|
Hey, we can keep it in a same PR it is fine. Will review it by end of the weekend. you can run -> mvn spotless::apply Tnx on PR |
* Introduce `spring-cloud-aws-kinesis-stream-binder` module (the name could be changed) * Mention it in the root POM * Manage it as a dependency * Also, manage `spring-cloud-stream-dependencies` * Add docs, include an image of Binder architecture
* Add `com.amazonaws:dynamodb-streams-kinesis-adapter` dependency which provides and adapter from DynamoDB Streams Client to Kinesis Client. That also incudes some convenient API for KCL configuration. * Add `SpringDynamoDBStreamsAdapterClient` extension to mimic Kinesis API required for the `KinesisMessageDrivenChannelAdapter` * Support DynamoDB Streams Adapter configuration in the `KclMessageDrivenChannelAdapter` * Add tests to verify DynamoDB Stream consumption via both `KinesisMessageDrivenChannelAdapter` and `KclMessageDrivenChannelAdapter` * Improve other KCL tests for race conditions and timing * Implement DynamoDB Streams support in the Kinesis Binder * Include `dynamodb-streams-kinesis-adapter` dependency into `spring-cloud-aws-starter-integration-kinesis-client` since `KclMessageDrivenChannelAdapter` now depends on that adapter API. * Fix "shard iterator ready" race condition in the `KinesisBinderFunctionalTests` Related to: spring-cloud/spring-cloud-stream-binder-aws-kinesis#205
* Adapt to the latest dependencies, including new Spring Boot deps for tracing * Fix `KinesisBinderObservationTests` according to the latest Spring Boot * Use Spring Cloud Stream `5.0.0` * Disable `KinesisBinderFunctionalTests` since there is something off with Spring Cloud Stream and batch handling
dcabde1 to
fe0d577
Compare
for the steam to be enabled on the table before performing data manipulation
Looks like the batch consumer for `Message<List<Message<?>>>` cannot be deduced yet. * Use plain `Consumer<Message<?>>` for the `Message<List<Message<?>>>` from the Kinesis binder * Fix typos in docs * Optimize some code flows
in attempt to mitigate race conditions * Add WARN for received CDC events in the `DynamoDbStreamToKinesisIntegrationTests`
spring-cloud-aws-kinesis-stream-bindermodule (the name could be changed)spring-cloud-stream-dependencies📢 Type of change
📜 Description
💡 Motivation and Context
💚 How did you test it?
📝 Checklist
🔮 Next steps