Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Oct 16 22:15
    Aaronontheweb synchronize #3889
  • Oct 16 21:00
    dependabot-preview[bot] synchronize #3986
  • Oct 16 21:00

    dependabot-preview[bot] on nuget

    Bump NUnit from 3.6.1 to 3.12.0… (compare)

  • Oct 16 21:00
    dependabot-preview[bot] synchronize #3985
  • Oct 16 21:00

    dependabot-preview[bot] on nuget

    Bump FsCheck.Xunit from 2.9.0 t… (compare)

  • Oct 16 21:00
    dependabot-preview[bot] synchronize #3983
  • Oct 16 21:00

    dependabot-preview[bot] on nuget

    Bump ApprovalUtilities from 3.0… (compare)

  • Oct 16 21:00
    dependabot-preview[bot] edited #3985
  • Oct 16 21:00
    dependabot-preview[bot] edited #3986
  • Oct 16 21:00
    dependabot-preview[bot] synchronize #3982
  • Oct 16 21:00
    dependabot-preview[bot] synchronize #3987
  • Oct 16 21:00

    dependabot-preview[bot] on nuget

    Bump FsPickler from 5.2.0 to 5.… (compare)

  • Oct 16 21:00

    dependabot-preview[bot] on nuget

    Bump LightningDB from 0.9.8 to … (compare)

  • Oct 16 21:00
    dependabot-preview[bot] edited #3982
  • Oct 16 21:00
    dependabot-preview[bot] edited #3983
  • Oct 16 21:00
    dependabot-preview[bot] edited #3987
  • Oct 16 20:59
    dependabot-preview[bot] edited #3982
  • Oct 16 20:59
    dependabot-preview[bot] edited #3985
  • Oct 16 20:59
    dependabot-preview[bot] edited #3987
  • Oct 16 20:59
    dependabot-preview[bot] edited #3986
Aaron Stannard
@Aaronontheweb
@peter-bannerflow yep, that's correctr
you can see the source for the benchmarks in any of the *.Tests.Performance projects
Peter Bergman
@peter-bannerflow
Cool, in the video you mention that the metrics in the graph show the number of messages pushed through a single Akka.Remote connection, would that be one instance of a process running an application with Akka.Remote that binds to one port ?
Curtis Swartzentruber
@skills0
@Aaronontheweb thanks for feedback, however both the nodes are seed nodes and both cluster configs have both nodes listed. The active/passive bit is managed by our code, I should've made that more clear.
Aaron Stannard
@Aaronontheweb
@skills0 check out some of our Akka.Cluster.Tests.MultiNode
we cover a big range of cluster disconnect / leave scenarios in there and verify they all leave correctly
in your scenario, does the cluster think the node is unreachable or has the node been removed from the membership?
Curtis Swartzentruber
@skills0
I'll check that out. Let me find the exception sequence.
Aaron Stannard
@Aaronontheweb
that'd be great
and please file a Github issue
it's easier to refer back to if there's a problem than Gitter chat
more persistent that way
Curtis Swartzentruber
@skills0
@Aaronontheweb i will put together an issue, but basically we call Cluster.Leave on seed node A, the seed node B goes through some association failure exceptions, marks A unreachable, but then keeps trying to associate with it. Helios then gets into a loop of connection errors (Error connecting, SocketException, etc.). Eventually node B gets "Leader can currently not perform its duties" and at that point the whole AkkaSystem on the up node just seems to stop working consistently.
Aaron Stannard
@Aaronontheweb
if A leaves and finishes the leave process, it will not be marked as unreachable
so when you call Cluster.Leave, do you wait for A to receive a local MemberRemoved event for itself?
or Cluster.RegsiterOnMemberRemoved delegate
before shutting down the actor system?
boekabart @boekabart thinks a helper method for that might be useful...await Cluster.LeaveAsync() or so
qwoz
@qwoz
"it's like watching ferrets describe how a supernova works" ... rofl!
Bartosz Sypytkowski
@Horusiath
:+1: for Cluster.LeaveAsync()
Aaron Stannard
@Aaronontheweb
yeah, that could work
would basically just need to send an actor a message when the Cluster.RegisterOnMemberRemoved delegate fires
and that actor would complete a TaskCompletionSource
Curtis Swartzentruber
@skills0
yeah guys, on closer review of the logs I'm thinking this may be operator error (pebkac). we mainly test in console apps and then deploy as service. I'm wondering if I'm not giving the AkkaSystem a chance to finish all the shutdown. thanks for the idea on waiting for MemberRemoved for self, hadn't thought of that. Getting ready to test some stuff around that.
Aaron Stannard
@Aaronontheweb
@ZoolWay I had to patch Helios anyway as part of 1.1.1
to solve some DNS resolution issues
went ahead and handled that exception better also
Ivan R. Perez
@irperez
blob
@Aaronontheweb I'm beginning my work on that "ReliableMessageBroker" that we spoke about a few weeks ago. Where should that live? In the pubsub as above?
Or should this be in its own folder?
Ricky Blankenaufulland
@ZoolWay
@Aaronontheweb Thanks, I am looking forward to 1.1.1. Meanwhile I could solve all leaving issues. As you said before, it is very important to give the actor system the time to complete the leave process. Also I have built myself a helper app which can down abandoned nodes.
So the last problem was that I got one ASP.NET core project which seemed not to be able to complete the leave. It was different in how the ActorSystem was created. In the problematic project I created the ActorSystem inside a lambda which worked as implementation factory to the IServiceProvider of ASP.NET. My ActorSystemProvider is now a separate service class and it now works out. Not sure, maybe it got something to do with the thread context where the actor system had been created.
Would you like to investigate on that? I would then try to add a sample for the failing to the GitHub repo.
Peter Bergman
@peter-bannerflow
If I want to broadcast a message to all children of an actor, what would the preferred way of doing that be? Would it be to do a Context.GetChildren() and then iterate over that. Or is it more efficient to use a broadcast-group-router? The children needs to be created excplictly in a specific workflow so I cannot use a pool router.
Peter Hvidgaard
@hvidgaard

Hi. I'm evaluating Akka.net, and I'm trying to figure out on what level to use it in a WPF application. I cannot find any solid info about it, so I hope to get some input here.

As it stands, I'm using an CQRS approach, in which I send commands to PersistentActors, and PersistentView (to be PersistenceQuery I believe) to get the data. Is it "the wrong way" to have my viewmodel depend on the IActorRefFactory, and create the View/Query actor to populate the viewmodel with data?

Arjen Smits
@Danthar
@peter-bannerflow I would go with the iterate over Context.GetChildren approach()
Peter Bergman
@peter-bannerflow
@Danthar for efficiency or just because it's less work than configuring a router?
Ricky Blankenaufulland
@ZoolWay
@hvidgaard I have watched a nice Pluralsight course on WPF MVVM and Akka.NET. If you got a pluralsight subscription I would recommend that.
@hvidgaard If you are familiar with WPF and MVVM, it is basically having the actor system doing the work and where you have interactions between UI and worker actors, those viewmodels get dedicated actors which get the VM in their constructor. These bridges will populate changed to the UI by changing the viewmodels where PropertyChanged will doing necessary marshalling. Other approaches might have actors bound to the UI dispatcher but this bridge approach per VM is working quite nice at the moment for me.
Peter Hvidgaard
@hvidgaard
@ZoolWay So using a prop to pass VMs to the actor - but that means coordinating it such that when creating a view, a VM and actor pair needs to be created as well. It doesn't seem like a fit for Prism with SimpleInjector, unless the VM creates the actor. I can see that work, albeit some abstraction and indirection is lost.
Ricky Blankenaufulland
@ZoolWay
I am not familiar with Prism here but using Caliburn.Micro with a VM-first approach. Does feel really easy to have those VMs which interact create their bridge actor.
Also there might be other approaches as well.
Peter Hvidgaard
@hvidgaard
I'll try to have the VM create the actors it need through a factory. How about lifecycle management in this case? When a view is recycled, the VM and Actor is now dead in the water. I could use a weakref in the actor to the VM and send a Stop in the destructor of the VM. It just feels too manual. Any insight on this?
Arsene T. Gandote
@Tochemey

Hello I would like to know when I have this in my App.Config file

akka {  
    stdout-loglevel = DEBUG
    loglevel = DEBUG
    log-config-on-start = on        
    actor {                
        debug {  
              receive = on 
              autoreceive = on
              lifecycle = on
              event-stream = on
              unhandled = on
        }
    }

Do I need to call _log.Debug("Some message"); in my Actors? Or Akka take cares of that for me.
Please can anyone advice me on that.

Bartosz Sypytkowski
@Horusiath
@Tochemey Those logging settings are for things, you cannot reach out by yourself (or it would require some amount of work). But beside that, how is akka supposed to know what you want to log?
Ricky Blankenaufulland
@ZoolWay
@hvidgaard Again specific to MVVM framework. I got event or ViewDettached or OnDeactivate() which can be appropiate for stopping.
Peter Hvidgaard
@hvidgaard
@ZoolWay I figured as much, speciel care is necessary for transient views.
Arjen Smits
@Danthar
@peter-bannerflow The broadcast-group-router does the same. Only then it manages its childs for you. If you already have an actor which manages a list of child actors using some custom logic, then iterating over the children collection and dispatching messages to them works just as well.
Peter Bergman
@peter-bannerflow
Alright, thx!
Arjen Smits
@Danthar
no problem
Peter Hvidgaard
@hvidgaard
@ZoolWay I went a slightly different route. I added a behaviour to prism such that views and viewmodels that implement IDisposable will be properly disposed, and then I put the actor shutdown in the dispose method. It seems reasonable that if you create an top level actor, you shut it down as well.
Ricky Blankenaufulland
@ZoolWay
@hvidgaard Sounds good to me.
Peter Hvidgaard
@hvidgaard
In any case, thanks for the input @ZoolWay