These are chat archives for akkadotnet/akka.net

22nd
Jun 2017
qwoz
@qwoz
Jun 22 2017 00:38
@mtmk what does "the current state of things" look like and do you need to perform complex queries on that? I see actors/akka as being orthogonal to how you persist your data. you can do event sourcing via the built-in persistence... or you can store your data in a flat file per actor... or you can do traditional crud... it really doesn't matter. ok, it matters if you want to do other things on that data in which case trying to extract information from the individual persistence locations across potentially millions of actors will suck. but of course there are ways around that... if you maintain a "top 10" kind of thing for your current state of things, you can recalculate that on the fly as you go instead of querying a traditional datastore for it. imagine a video game's "high score table" that keeps track of the 10 highest scores. you can avoid queries by simply telling the "HighScoreTableActor" a "GameCompleted" event that contains someone's name/initials and their game's final score. if the score is < the lowest score in the table, do nothing... otherwise, discard the table's lowest score and add the new score.
Vagif Abilov
@object
Jun 22 2017 12:32
Hello. I am trying to subscribe to a remote event stream. AFAIK this is possible but I can't figure out how to obtain a reference to a remote EventStream. I can obtain a remote stream by calling mailbox.Context.System.EventStream. But I only have an ActorRef for a remote actor. How can I get to a remote event stream from there?
Arjen Smits
@Danthar
Jun 22 2017 13:12
@object not thats not possible. You got it backwards
What you can do, is use a remote actor ref, and subscribe it with your local eventstream
The eventstream is a local facility only.
Andrey Leskov
@andreyleskov
Jun 22 2017 13:52
Hi all, I've updated to Akka 1.2.0, and my Unity-based DI stops to work with "serialize-creators = on" option. Please hake a look, may be it is some kind of my mistake:
  public class Hyperion_DI_test
    {
        [Fact]
        public void Just_create_an_actor()
        {
            var system = ActorSystem.Create("test",
                                                 @"akka {
                   actor {
                       serialize-creators = on
                       serializers { hyperion = ""Akka.Serialization.HyperionSerializer, Akka.Serialization.Hyperion""  
                                     wire = ""Akka.Serialization.WireSerializer, Akka.Serialization.Wire""}
                       serialization-bindings { ""System.Object"" = hyperion}
                   }
                   actor.provider = ""Akka.Remote.RemoteActorRefProvider, Akka.Remote""
                   remote {
                       helios.tcp { transport-class = ""Akka.Remote.Transport.Helios.HeliosTcpTransport, Akka.Remote""
                                    transport-protocol = tcp
                                    hostname = 127.0.0.1 }
                   }
            }");

            system.AddDependencyResolver(new UnityDependencyResolver(new UnityContainer(), system));
            system.ActorOf(system.DI().Props<MyActor>());
        }
        class MyActor : ReceiveActor { }
    }
"Akka" version="1.2.0"
"Akka.DI.Core" version="1.2.0"
"Akka.DI.Unity" version="1.1.0"
"Akka.Remote" version="1.2.0"
"Akka.Serialization.Hyperion" version="1.2.0.36-beta"
Got Microsoft.CSharp.RuntimeBinder.RuntimeBinderException
on actor creating
Vagif Abilov
@object
Jun 22 2017 14:10
@Danthar thanks for the info.
Aaron Stannard
@Aaronontheweb
Jun 22 2017 14:50
@andreyleskov hmmmm
would you mind submitting a bug?
I can't quite wrap my head around why that would happen
but we should investigate
Andrey Leskov
@andreyleskov
Jun 22 2017 14:51
sure
Aaron Stannard
@Aaronontheweb
Jun 22 2017 14:51
lol
one day I'd like to be able to read Cyrillic characters :p
Andrey Leskov
@andreyleskov
Jun 22 2017 14:52
don't bother, it was english word written in cyrillic letters, nobody will understand )
Aaron Stannard
@Aaronontheweb
Jun 22 2017 14:52
@object in Akka.Cluster the Cluster.Tools.DistributedPubSub namespace allows these capabilities to work across the network
@andreyleskov ha
Vagif Abilov
@object
Jun 22 2017 14:53
@Aaronontheweb I see. Спасибо :-)
jrlost
@jrlost
Jun 22 2017 14:55
Quick question guys. I'm attempting to implement a simple two node cluster (example: https://github.com/jrlost/AkkaNetRoutingTest). I'm seeing that when using a clustered pool, if use-local-routees is on, it seems to ignore the use-role property. Similar to what's outlined here: akka/akka#15042
I'm hoping that I'm just doing something completely wrong
Aaron Stannard
@Aaronontheweb
Jun 22 2017 14:56
quick FYI for everyone in the room: going to get a small 1.2.1 release out very soon (hopefully by Friday) with some important fixes for Akka.Cluster - most of the work being done right now is on 1.3 though and that's going at a good clip and we're getting more and more stuff running on .NET Core every day. So in case you're getting flooded with notifications, just wanted to give you a quick summary.
I haven't looked back that far exactly yet but I think we're at a high watermark in terms of pull request volume
Andrey Leskov
@andreyleskov
Jun 22 2017 14:57
It will be cool!
Aaron Stannard
@Aaronontheweb
Jun 22 2017 14:59
@jrlost mind submitting a bug for that?
should be easy to fix
jrlost
@jrlost
Jun 22 2017 15:00
sure, thanks
Done, akkadotnet/akka.net#2783, let me know if you need any more info.
Thanks again
Arjen Smits
@Danthar
Jun 22 2017 15:29
@andreyleskov @Aaronontheweb I think thats probably the same issue as with the Windsor container. If you turn that option on, the entire DI container is being serialised somehow.
Aaron Stannard
@Aaronontheweb
Jun 22 2017 15:34
@Danthar ohh nasty
let's get an issue open for that
Arjen Smits
@Danthar
Jun 22 2017 15:43
i thought the person who reported it here, already did
but now i cant find the issue
Aaron Stannard
@Aaronontheweb
Jun 22 2017 15:44
did it end up getting reported on the CastleWindsor repo?
Arjen Smits
@Danthar
Jun 22 2017 15:44
and i think it could very well have been the serialize-all option in his case
nope
just checked
Aaron Stannard
@Aaronontheweb
Jun 22 2017 15:44
yeah it would have to be with serialize-all turned on
.... oh dude.... you know what it might be
the system messages we use for creating actors which contain props
Create et al
those can't be serialized if DI is being used
since the Props class itself hangs onto a reference to the underlying DI container
Arjen Smits
@Danthar
Jun 22 2017 15:45
yup
Im more inclined to document it as a, don't do that :P
Aaron Stannard
@Aaronontheweb
Jun 22 2017 15:46
that's a wontfix unless there's some sort of obvious solution
in effect this is serialize-all-messages working as intended
Arjen Smits
@Danthar
Jun 22 2017 15:46
yes, thats what i was thinking as well
Aaron Stannard
@Aaronontheweb
Jun 22 2017 15:46
but eh, might still be something that's weird
Andrey Leskov
@andreyleskov
Jun 22 2017 15:46
Guys, just created akkadotnet/akka.net#2784 for this issue, will close if it is a dublicate
Aaron Stannard
@Aaronontheweb
Jun 22 2017 15:46
should investigate at least
Arjen Smits
@Danthar
Jun 22 2017 15:47
yes, but i think its the way creators work in akka
similar problem as to why using DI with remote actors is an issue right now
Andrey Leskov
@andreyleskov
Jun 22 2017 15:48
guys, but what changed since 1.1.3 in DI ? old versions work ok with Props
those are all of the 1.2 issues
this one looks like the most obvious suspect on the list akkadotnet/akka.net#2587
there are some changes there related to the serialization of children
that could do it
Arjen Smits
@Danthar
Jun 22 2017 15:54
The stuff from here might be of influence
Aaron Stannard
@Aaronontheweb
Jun 22 2017 15:54
yeah that's what I was looking at
we should add that to the issue @andreyleskov opened
Arjen Smits
@Danthar
Jun 22 2017 15:54
especially that change from AssemblyQualifiedName to TypeQualifiedName might have some impact if your using DI
Aaron Stannard
@Aaronontheweb
Jun 22 2017 15:54
because if this worked before and it doesn't now
means we might have done goofed
Arjen Smits
@Danthar
Jun 22 2017 15:55
If your using windsor, that container is famous for proxies
:P
Aaron Stannard
@Aaronontheweb
Jun 22 2017 15:55
yeah I think you're right
Arjen Smits
@Danthar
Jun 22 2017 15:55
what if you proxy the type your injecting, i wonder what that does
Added the reference to the issue
Stephen Newman
@goodisontoffee
Jun 22 2017 16:15
We're experiencing the same issue as @Danthar moving from 1.1.3 to 1.2 (using Autofac) with serialize-creators = on
Aaron Stannard
@Aaronontheweb
Jun 22 2017 16:20
damn you dependency injection!! shakes fist
lol... sounds like we introduced a bug
we'll get that fixed... probably going to have to lump that in with 1.3 though
since all of that stuff is going to be different with \ .NET Standard / Core
Arjen Smits
@Danthar
Jun 22 2017 16:42
@goodisontoffee thx for the report. Added it to the issue
Alex Valuyskiy
@alexvaluyskiy
Jun 22 2017 19:09
@Danthar Previously we had a bug in SerializeAllCreators. We have checked the type of parameter, not the parameter itself.