hello @fehmicansaglam , i have silly question, but its important for me. how i convince my seniors for user "tepkin" instead of "reactivemongo-extensions" ?
Fehmi Can Sağlam
@fehmicansaglam
@harmeetsingh0013 i don't suggest using tepkin on production until akka streams 1.0 stable is released.
just go ahead with reactivemongo if you are starting a project right now.
Harmeet Singh(Taara)
@harmeetsingh0013
thanks @fehmicansaglam for your great suggestion.
Harmeet Singh(Taara)
@harmeetsingh0013
hello @fehmicansaglam , i am using reactivemongo-extensions with query dsl
but he problm is that, when this query "userService.findRandom($and("email" $eq clientCredential.clientId, "password" $eq clientCredential.clientSecret, "grantType" $eq grantType))" the values return empty
but when i run this query "userService.findRandom(BSONDocument("email" -> clientCredential.clientId, "password" -> clientCredential.clientSecret, "grantType" -> grantType));" the values are return, what is the problem with query DSL ?
Fehmi Can Sağlam
@fehmicansaglam
Although both of them should work they are not identical
If you use $doc instead of $and both queries will be identical
@harmeetsingh0013 can you try that?
Fehmi Can Sağlam
@fehmicansaglam
I have tested both queries and they work as expected.
Can you create a sample app and file an issue on reactivemongo-extensions project?
And please do remember that this group is just for talking about tepkin.
Harmeet Singh(Taara)
@harmeetsingh0013
thanks @fehmicansaglam for you help. for "$and()" query problem, you need a sample app ?
Fehmi Can Sağlam
@fehmicansaglam
Yep, maybe a gist to reproduce the issue.
Fehmi Can Sağlam
@fehmicansaglam
@danielwegener 0.4-SNAPSHOT supports tailable cursors. 0.4 will be released on 2nd of May.
Daniel Wegener
@danielwegener
Cheers @fehmicansaglam, I'll give it a try
Daniel Wegener
@danielwegener
The api looks promising. Just curious, what do you think about a insert-Sink that blows up (i.e. reports its errors upstream) on write errors?
Fehmi Can Sağlam
@fehmicansaglam
So you are talking about a new api or modifying the current insertFromSource api?
Daniel Wegener
@danielwegener
Ah I've overlooked that one, cheers. Yeah thats going into the direction. Though It is a bit uncomfortable to fit this into normal akka-stream composition if you have to call insertFromSource on a Source rather than just provide a InsertSink that can be composed into any stream graph and be materialized by graph.run
Possible errournous write results could let the stream fail and bubble the error upstream
Adding a sink method to MongoCollection which returns a Sink makes sense.
I am not sure that we need an ActorSubscriber. Let me try to come up with a poc.
Daniel Wegener
@danielwegener
The streams api takes a bit different approach as far is I understood. It would rather let you create a Sink that is not bound to a concrete external service but rather let you provide a function that resolves your external service when you materialize the Sink. Such an API like Mongo.insertSink( collection:()=> MongoCollection ) : Sink[DBObject]
Sounds great, let me know if I can help you in some way with that
Fehmi Can Sağlam
@fehmicansaglam
Sure
Fehmi Can Sağlam
@fehmicansaglam
After reading the docs I agree that we need an ActorSubscriber in order to support back pressure
But I am not sure about the api. Should a sink be reusable? MongoCollection.sinkM: Sink[List[BsonDocument, M] seems good to me.
```
def ignore: Sink[Any, Unit] =
new Sink(new BlackholeSink(DefaultAttributes.ignoreSink, shape("BlackholeSink")))
This code is from akka streams itself. It creates a new sink every time Sink.ignore is called. So it makes sense to create a new Sink for each MongoCollection.sink call
so, I will say a little about existing solutions for MongoDB in Scala, and why I started to develop MongoQuery, before cover the implementation details.
Fehmi Can Sağlam
@fehmicansaglam
Will you mention about Tepkin in a good way or not?:)
Mike Limansky
@limansky
In the way that it not supported in mongoquery yet :-D