These are chat archives for paypal/squbs

28th
Dec 2016
Akara Sucharitakul
@akara
Dec 28 2016 01:24
I'm almost for building our own delay or our own timeout flow altogether. I have not seen a custom stage for BidiFlow but would need something like that.
Anil Gursel
@anilgursel
Dec 28 2016 01:27
We already have “our own timeout flow” because there is not timeout flow. But, we can introduce a delay stage.
Akara Sucharitakul
@akara
Dec 28 2016 01:29
I'm referring to #3 in your summary. Our own timeout flow is constructed from a delay stage. I'm wondering whether that is the one causing all the headaches and if we have to do the timeout without a delay stage altogether?
Anil Gursel
@anilgursel
Dec 28 2016 01:29
Experiencing really really odd (probably normal, but absolutely unexpected) behavior when “delay” and “fusing” is used together. I would like to show some runs to you tomorrow. The concurrency of the streams is really hard to work with if you’re doing any “timer” related stuff.
I actually agree. We may consider replacements of “delay”.
Akara Sucharitakul
@akara
Dec 28 2016 01:31
It just comes from my thought around reduction of complexity. If complexity is causing issues, I'd want to see whether we can simplify. It may mean we need to take things into our hands a bit more.
Anil Gursel
@anilgursel
Dec 28 2016 01:32
I tend to agree. But, on the other side I am afraid of introducing further complexity while trying to reduce complexity :worried:
Akara Sucharitakul
@akara
Dec 28 2016 01:32
Yes, you got to be careful with that.
Anil Gursel
@anilgursel
Dec 28 2016 01:32
anyway, going offline for today. Will talk to you tomorrow.
Akara Sucharitakul
@akara
Dec 28 2016 01:33
Have a good one.
Anil Gursel
@anilgursel
Dec 28 2016 01:33
u too
Corey Auger
@coreyauger
Dec 28 2016 06:21
hey guys.. quick question. I am using 0.8.2-SNAPSHOT trying to make an http service using akka http example
import akka.http.scaladsl.server.Route
import org.squbs.unicomplex.RouteDefinition

class PingPongSvc extends RouteDefinition {

  def route: Route = path("ping") {
    get {
      complete("pong")
    }
  }
}
however i run into this overriding method route in trait RouteDefinition of type => spray.routing.Route;
i suspect I am running the wrong version?
thanks
Corey Auger
@coreyauger
Dec 28 2016 06:27
ah.. 0.9.0-SNAPSHOT does the trick.. are we safe using this version in production code?
thanks again
Akara Sucharitakul
@akara
Dec 28 2016 06:46
@coreyauger you should be able to do this in 0.8.1 and 0.8.2-SNAPSHOT. However, you need to enable experimental mode as described here.
0.9.0-SNAPSHOT will use Akka HTTP by default. So that's why you get it to work without further settings. This API and the FlowDefinition API are stable at this point. We have pending work on HttpClient and especially marshallers/unmarshallers that should go in within 1-2 days. Also the streaming circuit breaker is still in the works as you can see from the discussions. I hope we get that stable soon. It is a tricky piece.
Akara Sucharitakul
@akara
Dec 28 2016 06:53
I would not consider 0.9.0-SNAPSHOT totally production-safe just yet. But I have feeling it is in pretty good shape (and definitely better performance than 0.8.x). The API will be frozen in the next couple of days. Depending on when you want to go to production, we should have 0.9.0 release version available within the next month.
@anilgursel #363 is ready as per your review. Thank you very much for the input.
Anil Gursel
@anilgursel
Dec 28 2016 16:50
@akara Since I have tried quite bit of different combinations, I am at a confused state now, so not exactly sure what has changed :smiley: But, anyway, I seem to get expected results now. CB and delay functioning well with fusing ON. One thing I observed though, when CB shortcircuits it tends to demand faster from the source, so more elements go through the CB failfast line. Adding a throttle on the fail fast line helps and allows CB to move to good condition with less element going through fail fast. Of course, this all depends on the scenario. If we cannot control the input rate, nothing much to do, but if the source is Kafka queue, we may rather add a throttle (alternatives to CB could be used for suchs scenarios though, e.g., Persistent Buffer). Between, “delay” affecting the throughput is, of course, still an issue. I believe that’s something that we need to address. I will come up with proposals.
Akara Sucharitakul
@akara
Dec 28 2016 17:44
Keep commits for the different variations :smile:
Anil Gursel
@anilgursel
Dec 28 2016 17:45
yeah, that’s what I did, even though they were dirty code changes. but, still, not able to explain why things seem ok now :)
maybe, I was so confused yesterday and needed some rest :smile:
Akara Sucharitakul
@akara
Dec 28 2016 17:46
But yes, since your test involves pre-existing datasets you'll definitely see that the throughput of the CB open be higher.
Sometimes we overwork. What I learn is when I'm getting drowsy it is better to stop coding. I'll otherwise spend more time fixing what I've just coded.
So, take it easy and take breaks :smile:
Corey Auger
@coreyauger
Dec 28 2016 22:09
@akara thanks :)