These are chat archives for paypal/squbs

15th
Dec 2016
Anil Gursel
@anilgursel
Dec 15 2016 16:08
@akara Have you had a chance to review the post? I think it might be a good venue to start showing some capabilities by sharing https://github.com/paypal/squbs/blob/master/docs/persistent-buffer.md.
Akara Sucharitakul
@akara
Dec 15 2016 16:51
@anilgursel Yes I think that is a good place to talk about persistent buffer. Do you want to take a shot at it? We need to talk about durability as well when discussing this topic.
Anil Gursel
@anilgursel
Dec 15 2016 16:56
I will let you reply as you’re the original creator of that :smile:
Akara Sucharitakul
@akara
Dec 15 2016 17:05
ok.
Akara Sucharitakul
@akara
Dec 15 2016 17:11
@anilgursel I just found out the Java API for bindAndHandle does not take port 0 as an argument. It is merely blocked by a require(port > 0). So the Java test cases need to have a port assigned :disappointed:
Also, JUnit runs each test on a separate instance of the class. This causes us to bring up different servers, with port conflicts. So I had to make the server initialization static. Not sure that's a good practice. I searched around and that is the design of JUnit. I'd have to move to TestNG to get rid of that. Please see https://github.com/akara/squbs/blob/f57cf944aba78e62eaf260368937982825bb90fa/squbs-httpclient/src/test/java/org/squbs/httpclient/ClientFlowTest.java#L41 and let me know your comments.
Anil Gursel
@anilgursel
Dec 15 2016 17:16
Actually, I would prefer using TestNG for our own tests. Way more powerful IMO.
Akara Sucharitakul
@akara
Dec 15 2016 17:16
Do we have a good sbt integration?
I think it is time to file an issue against Akka. Actually a very small and easy to fix one.
Well, against Akka HTTP.
Anil Gursel
@anilgursel
Dec 15 2016 21:19
@akara https://groups.google.com/forum/#!topic/akka-user/-wIc6ISaL6A talks some about Broadcast and async.. But, I am still stuck in figuring out making only one branch async..
Anil Gursel
@anilgursel
Dec 15 2016 22:25

@akara Thinking about the following quote at https://groups.google.com/forum/#!topic/akka-user/MdvVehdco94

adding an asynchronous boundary adds that boundary around the graph that has previously been constructed.

if we add async in only one branch after Broadcast, then it would still include Broadcast which includes the other branch as well. But, again, in the same page:

val branch1 = someFlow.withAttributes(asyncBoundary)
val branch2 = someFlow.withAttributes(asyncBoundary) 

split.out1 ~> branch1
split.out2 ~> branch2

So, in this case, are there 3 different async components?

Another possibility is.. I am doing a merge at the end, by any chance, it might be interering?

Akara Sucharitakul
@akara
Dec 15 2016 22:37
Yes, it is still very confusing.
Anil Gursel
@anilgursel
Dec 15 2016 22:39
I am going to remove the merge so that two branches do not coverge later, and observe..
Anil Gursel
@anilgursel
Dec 15 2016 23:47
@akara For now, I will just add the async at the Braodcast level, and file an issue to debug further. I think I got stuck enough, I do not want to slow down any further. We can come back and fix it later. I am pretty sure we will hit some other road blocks.