These are chat archives for akkadotnet/akka.net

26th
Jul 2016
Weston
@ronnyek
Jul 26 2016 00:27
spray reminds me of java built product
so looking at broadcasting a stream
thats like saying broadcast.out(0) is just one channel from the broadcast
Weston
@ronnyek
Jul 26 2016 00:32
and effectively splits the broadcast into a couple diff categories, or pipes
and once you have those pipes you do things with them?
Weston
@ronnyek
Jul 26 2016 01:54
ok so that is actually pretty cool
the reactive tweets
I'd be curious to see more involved graphs
to11mtm
@to11mtm
Jul 26 2016 02:17
annnnnnnnnd Oracle has a 1.1.1 ready provider. I'm not terribly proud of the TODOs but it is functional will work for use at the office.
Ricky Blankenaufulland
@ZoolWay
Jul 26 2016 11:17
@qwoz Thanks, that is similar to my solution. I was just wondering if there is a better way. Disrupting the handler and have a seconds one to continue the work once the Ask completes just feels like going back to callback-hell while I already was in async-await-heaven ;)
Peter Bergman
@peter-bannerflow
Jul 26 2016 12:52
About streams documentation, has there been any "introduction" video recorded on the subject?
Marc Piechura
@marcpiechura
Jul 26 2016 12:54
@peter-bannerflow afaik not for .Net but there are plenty for the jvm version
Peter Bergman
@peter-bannerflow
Jul 26 2016 12:55
Yeah ok, I see
Marc Piechura
@marcpiechura
Jul 26 2016 13:25
btw. I have created a Akka.Streams adapter for the Azure Storage Queue, could be a good starting point if anyone want's to write his own adapter https://github.com/Silv3rcircl3/Akka.Streams.Azure
Peter Rosconi
@prosconi
Jul 26 2016 13:51
I'm trying to understand clusters
akka {
   actor{
      provider = "Akka.Cluster.ClusterActorRefProvider, Akka.Cluster"
      deployment {
        /api/myClusterPoolRouter {
            ...
        }
      }
   }
}
what does /api/myClusterPoolRouter refer to?
Ricky Blankenaufulland
@ZoolWay
Jul 26 2016 13:56
@prosconi It's a name you give the router, in thise case a router which is a child actor of your actor "/api". it is a local name where you can send messages the router will send to the cluster (if you do the remaining deployment setup)
Weston
@ronnyek
Jul 26 2016 14:09
after having dug into streams, I think I get it... is it feasible to drive some of the graph stuff dynamically
eg, I want to use streams to setup some criteria to filter messages destined to a sink using built in stuff and possibly rx
btw I dont think the samples or videos from other akka are bad, I think scala / the way java does lambdas etc, leave a bit of a gap
Alex Valuyskiy
@alexvaluyskiy
Jul 26 2016 14:14
@Silv3rcircl3 good job
@Silv3rcircl3 So, I think it is possible to write adapter for Redis and use PubSub here. Am I right?
Marc Piechura
@marcpiechura
Jul 26 2016 14:24
@alexvaluyskiy I haven't worked with Redis so I can't say for sure but it should be possible. Generally you need to make sure you handle the Pull, Push, Grab .. calls correctly and use GetAsyncCallback for task continuation
Alex Valuyskiy
@alexvaluyskiy
Jul 26 2016 14:24
Grab?
Marc Piechura
@marcpiechura
Jul 26 2016 14:25
Picks an element from the input port in a sink or flow stage
Pull tells upstream that it can handle another element and then onPush action is called were you are allowed to call Grab
It's explained in detail here http://getakka.net/docs/streams/customstreamprocessing#custom-processing-with-graphstage under Port states, InHandler and OutHandler
Alex Valuyskiy
@alexvaluyskiy
Jul 26 2016 14:32
@Silv3rcircl3 Do you have plans to create an adapter for Azure EventHub/Azure ServiceBus?
Weston
@ronnyek
Jul 26 2016 14:32
I will say you guys did a fantastic port from java... it doesnt FEEL like it was just pulled over from java
and amazing upkeep
Marc Piechura
@marcpiechura
Jul 26 2016 14:38
@alexvaluyskiy Jup
Alex Valuyskiy
@alexvaluyskiy
Jul 26 2016 14:44
.NET doesn't not have a proper kafka implementation. So, only Azure
Even this implementation doesn't evolve
https://www.nuget.org/packages/kafka-net/
Peter Bergman
@peter-bannerflow
Jul 26 2016 14:50
A quesion about Akka.Monitor and Perfomance Counters: upon receiving messages in one of my actors (that I have multiple instances of) log the number of messages in the mailbox (with Context.Gauge("akka.messageboxsize", ((ActorCell)Context).NumberOfMessages)). When i plot this counter in perfmon, will I then see the aggregated value of the mailbox size of all instances of this actor at any given time?
Aaron Stannard
@Aaronontheweb
Jul 26 2016 16:39
@peter-bannerflow what you should see is that Akka.Monitoring will break that number down across a couple of dimensions
you'll see it by the actor type
i.e. the class name
and you should also see it by that actor's unique path
in your actor system
we report that metric both ways each time it is recorded
the coarse-grained metric is designed to help you determine which actor implementations are on the "hot" path
the fine-grained one is designed to help you see which instances, specifically, are the busiest
crap... I need to update that to 1.1 don't I
https://twitter.com/irperez/status/757762209397088256 - the metric that is simultaneously the most difficult to measure and the most important to watch is how well a piece of code performs under continuous use. Hat tip to @irperez for sharing some of his results with 1.1.1 over the past week :p
Peter Bergman
@peter-bannerflow
Jul 26 2016 17:54
@Aaronontheweb hmm I could only find it by class name in perfmon, but maybe that's just me not being friend with the tool yet
Aaron Stannard
@Aaronontheweb
Jul 26 2016 18:02
to be clear, I didn't write the PerfCounter plugin
I used Graphite
aka StatsD
but the underlying plugin does the same regardless of what the stats sink is
wdspider
@wdspider
Jul 26 2016 18:10
If I'm changing the maximum-frame-size (https://github.com/akkadotnet/akka.net/blob/dev/src/core/Akka.Remote/Configuration/Remote.conf#L389) is the rule of thumb generally to set the send-buffer-size and receive-buffer-size to 2x its value, or is it more just coincidence that the default values are that way?
Aaron Stannard
@Aaronontheweb
Jul 26 2016 18:11
that's a good rule of thumb
if your maximum frame size was bigger than your buffer
you could run into some problems, although I think on TCP you'll be fine
since the transport will be doing continuous reads anyway
and that includes partial reads of a single frame
wdspider
@wdspider
Jul 26 2016 18:12
alrighty... thanks
Jaben Cargman
@Jaben
Jul 26 2016 19:49
I have a client installs (window services that do monitoring) that needs to contact a remote server instance... I have this working fine with Akka.Remote. locally, but when it runs remote, the server complains that it cannot connect to the client. ("Address not accessible") I see in the docs it says "For client-server setups it is better to use HTTP or Akka I/O(Not yet ported to Akka.NET)" --> confirming that this situation is not supported yet?
Because it works sometimes
Jaben Cargman
@Jaben
Jul 26 2016 20:03
Helios 2 + Akka v1.1 error is from "akka://GoodJobKiddoBackend/system/endpointManager" and says "Invalid address: akka.tcp://ClientApp@localhost:1211"
wdspider
@wdspider
Jul 26 2016 20:07
there were a few Remote bugs in v1.1 that v1.1.1 fixed
Jaben Cargman
@Jaben
Jul 26 2016 20:08
hmm, but does it require that the client be accessible from the server?
even if the client is the one connecting?
and only "Sender" is used from the server to respond?
@wdspider I'll update to latest -- thanks
wdspider
@wdspider
Jul 26 2016 20:10
it looks like you might be running into the DNS issue that was in 1.1 due to it defaulting to IPv6...... I was having much trouble with localhost myself...... v1.1.1 seems to have cleared my issues though
Jaben Cargman
@Jaben
Jul 26 2016 20:11
@wdspider Ahh -- good to know! Yes, it's complaining about DNS look-ups too.
qwoz
@qwoz
Jul 26 2016 20:32
@ZoolWay I know what you mean... my understanding is that if you use ReceiveAsync and modify your actor's state, you run the risk of processing messages simultaneously with an indeterminate state. However, if you don't modify state, then async/await all the way. I'm sure someone will chime in if that understand is incorrect. :)