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

Implement Channel Adapters for Redis Streams #3226

Closed
akuma8 opened this issue Mar 19, 2020 · 2 comments
Closed

Implement Channel Adapters for Redis Streams #3226

akuma8 opened this issue Mar 19, 2020 · 2 comments

Comments

@akuma8
Copy link
Contributor

akuma8 commented Mar 19, 2020

It's a reminder of that JIRA issue: https://jira.spring.io/browse/INT-4567
I currently need this feature in my project and I don't see how to implement it easily.
I can contribute with a little guidance since I never contributed to SI before.
Thanks

@artembilan
Copy link
Member

See StreamOperations in Spring Data Redis and respective documentation: https://docs.spring.io/spring-data/redis/docs/2.3.0.M4/reference/html/#redis.streams

Also see https://spring.io/projects/spring-kafka for the Spring API around Apache Kafka. Don't confuse yourself with Kafka Streams though, because it looks like Redis Streams is more like regular Kafka Consumer/Producer.
There is also https://github.com/spring-projects/spring-integration-kafka project - Spring Integration channel adapter implementations around Spring Kafka abstractions.

So, the goal of this issue is to have channel adapter implementations around Spring Data StreamOperations API.

Does it make sense?

Thank you for willing to contribute the feature!

@akuma8
Copy link
Contributor Author

akuma8 commented Mar 20, 2020

@artembilan Thank you for these details. I take a look about the implementation, I'll let you know if I need other information.

@artembilan artembilan modified the milestones: Backlog, 5.4.x Apr 19, 2020
artembilan pushed a commit that referenced this issue Aug 7, 2020
Fixes #3226

* Implement a `ReactiveRedisStreamMessageProducer` to consume Redis streams
* Add support for consumer groups and group auto-creation
* Add `@author` to `RedisHeaders`
* Rename test methods in the `ReactiveRedisStreamMessageHandlerTests` to project code style
* Implement `hashCode()` & `equals()` for `Person` & `Address` testing models
* Fix `ReactiveRedisStreamMessageProducerTests` not creating bean for `ConnectionFactory`.
Otherwise it caused to create one more not controlled `RedisClient`
* Code style clean up in the `ReactiveRedisStreamMessageProducer`
* Implement a group creation logic as a reactive stream deferring the call until
a subscription happens on the final `messageFlux`
* Move a common code for message building as the last `map()` operator in the final `Flux`
* Remove an `IntegrationFlow` definition in the `ReactiveRedisStreamMessageProducerTests`
as redundant
artembilan pushed a commit that referenced this issue Aug 11, 2020
@artembilan artembilan modified the milestones: 5.4.x, 5.4 M2 Aug 21, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants