spring-cloud-stream icon indicating copy to clipboard operation
spring-cloud-stream copied to clipboard

Add a Redis binder implementation

Open akuma8 opened this issue 5 years ago • 8 comments

Redis provides all message broker functionnalities (queue, topic, consumer groups, etc...), I was estonished to see that a great project like Spring Cloud Stream does not provide a default support. Its binder was deprecated in 2016 (https://github.com/spring-cloud/spring-cloud-stream-binder-redis) is it possible to reconsider that decision and provide a default implementation? I'll be happy to contribute if needed with some helps.
Thanks

akuma8 avatar Mar 19 '20 18:03 akuma8

@akuma8 Thank you for showing an initiative on this. We've been talking about it internally but never really got around until pretty much now and your issue could not have been more on time. So, yes we are definitely interested in revisiting it. If you indeed want to contribute, then I'd suggest resurrecting https://github.com/spring-cloud/spring-cloud-stream-binder-redis and issuing PRs there and we can review/merge and get this going.

Please let us know

olegz avatar Mar 20 '20 14:03 olegz

I think the plan is to implement Spring Integration Channel Adapters for Redis Streams first of all: https://github.com/spring-projects/spring-integration/issues/3226. With that on board I don't think that old Redis Binder code base would make sense, although we can keep the name and project location...

artembilan avatar Mar 20 '20 14:03 artembilan

@akuma8 just to clarify, what Artem is saying the required changes may be significant enough to justify a separate repo but that's fine. The overall goal is to maintain the natural evolution and history of the project, so reusing the same repo is still better even if you end up completely throwing away the old code.

olegz avatar Mar 20 '20 14:03 olegz

@olegz what would be the best approach for this?

lherrera-redislabs avatar May 27 '21 09:05 lherrera-redislabs

Hi @lherrera-redislabs I think resurrecting this implementation based on current s-c-stream 3.1.x - https://github.com/spring-cloud/spring-cloud-stream-binder-redis would probably be the best approach.

We can certainly provide guidance and work with contributors.

We can also discuss the ownership pf the project and see if redislabs are interested to completely take over as some vendors do (e.g., Solace)

olegz avatar May 27 '21 09:05 olegz

Redisson team is adding this feature. Just FYI.

https://github.com/redisson/redisson/issues/3759

kitkars avatar Aug 13 '21 22:08 kitkars

@kitkars, @lherrera-redislabs We managed to add Redis Stream support in Spring Integration, see those commits : https://github.com/spring-projects/spring-integration/commits?author=akuma8 The remaining task will be to reuse what we did to add the binder.

akuma8 avatar Aug 23 '21 21:08 akuma8

I'm surprised that support for Redis hasn't been implemented until now.

cnlinjie avatar Mar 21 '23 13:03 cnlinjie