apache / pekko-connectors

Apache Pekko Connectors is a Reactive Enterprise Integration library for Java and Scala, based on Reactive Streams and Apache Pekko.
https://pekko.apache.org/
Apache License 2.0
64 stars 32 forks source link

support mongodb for scala3 #150

Open pjfanning opened 1 year ago

pjfanning commented 1 year ago
bdoyle0182 commented 1 year ago

maybe not the right place to chime in, but would porting reactivemongo-akkastream to have a pekko version apply here? I'm trying to coordinate on getting a pekko version of akka-persistence-mongo which was never an official akka connector. The one major blocker I can see is it depends on reactivemongo-akkastream otherwise the only other thing it uses is akka core which is now already covered by pekko core 1.0.0

pjfanning commented 1 year ago

maybe not the right place to chime in, but would porting reactivemongo-akkastream to have a pekko version apply here? I'm trying to coordinate on getting a pekko version of akka-persistence-mongo which was never an official akka connector. The one major blocker I can see is it depends on reactivemongo-akkastream otherwise the only other thing it uses is akka core which is now already covered by pekko core 1.0.0

If you or anyone else wants to fork reactivemongo to support pekko or submit a patch to reactivemongo that would be very helpful.

My personal preference would be to do this outside of the Pekko project - which has plenty of code to manage as it is.

pjfanning commented 1 year ago

I raised https://github.com/ReactiveMongo/ReactiveMongo-Streaming/issues/320

bdoyle0182 commented 1 year ago

I started working on adding a pekkostream module to the reactivemongo streaming repo in a fork. I think I've done everything I can, pretty straight forward, but since the core project this repo is dependent on is built using akka it would require cutting over the core reactivemongo repo to pekko and buy in from the reactivemongo team.

mdedetrich commented 1 year ago

I started working on adding a pekkostream module to the reactivemongo streaming repo in a fork. I think I've done everything I can, pretty straight forward, but since the core project this repo is dependent on is built using akka it would require cutting over the core reactivemongo repo to pekko and buy in from the reactivemongo team.

So the current pekko-connectors mongo driver has been udpated to work within Pekko but I think going forward it works out it makes sense to support a pekko version of reactive-mongo as its own project in the same vain as how we have pekko-connectors-kafka.

pjfanning commented 1 year ago

I started working on adding a pekkostream module to the reactivemongo streaming repo in a fork. I think I've done everything I can, pretty straight forward, but since the core project this repo is dependent on is built using akka it would require cutting over the core reactivemongo repo to pekko and buy in from the reactivemongo team.

So the current pekko-connectors mongo driver has been udpated to work within Pekko but I think going forward it works out it makes sense to support a pekko version of reactive-mongo as its own project in the same vain as how we have pekko-connectors-kafka.

This is covered by https://github.com/ReactiveMongo/ReactiveMongo/pull/1245

mdedetrich commented 1 year ago

This is covered by ReactiveMongo/ReactiveMongo#1245

I see, I had a quick look at the project and it just provides the basic driver however what the current pekko-connectors mongodb provides is also Pekko Streams integration (i.e. Source/Sink/Flow) so once this is released then we should either update the current pekko-connectors mongodb module to use reactive mongo (as a breaking change) or my previous suggestion which would be to create a pekko-connectors-mongodb which uses ReactiveMongo underneath and deprecate the current mongodb module

pjfanning commented 1 year ago

Yes, a new connector and deprecating the existing one may be a tidier approach

mdedetrich commented 1 year ago

Yes, a new connector and deprecating the existing one may be a tidier approach

Agreed, although I think the determining factor is whether the Stream API would be any different, i.e. it might be that the structure and types of the Flow/Sink/Source would be the same even with the reactive mongo driver in which case it might be fine to just do a major update in the current pekko-connectors mongo module