Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 17:57
    valdisz synchronize #3904
  • 12:27
    valdisz synchronize #3904
  • 11:43
    cptjazz commented #3925
  • 11:40
    cptjazz synchronize #3925
  • 11:02
    valdisz edited #3904
  • 10:55
    Aaronontheweb synchronize #3926
  • 10:45
    Aaronontheweb opened #3927
  • 10:01
    valdisz synchronize #3904
  • 06:22
    cptjazz commented #3925
  • Sep 21 19:33
    Aaronontheweb opened #3926
  • Sep 21 16:19
    valdisz synchronize #3904
  • Sep 21 14:58
    Aaronontheweb synchronize #3924
  • Sep 21 14:58
    Aaronontheweb commented #3922
  • Sep 21 14:45
    valdisz synchronize #3904
  • Sep 21 14:43
    valdisz synchronize #3904
  • Sep 21 14:35
    Aaronontheweb commented #3925
  • Sep 21 09:51
    cptjazz opened #3925
  • Sep 21 09:11
    cptjazz opened #3924
  • Sep 20 23:30

    Aaronontheweb on dev

    added ability to support custom… (compare)

  • Sep 20 23:30
    Aaronontheweb closed #3923
Kevin Avignon
@Kavignon
That actor sole purpose would be to either get or create components ? Should it also have a child actor to listen to the event stream in case of dead letters which would mean that 1+ of my actors are dead and needs to be revived ?
By any chance, and I know they're pretty slim, is there an example with F# of clustering or a similar approach to clustering Akka.NET actors that you'd know of ? @Horusiath
Bartosz Sypytkowski
@Horusiath
if you need to be informed about actor dying, you can use Context.Watch to watch over that actor (in F# API this function was called monitor I suppose).
Wathing actor will receive Terminated message with reference to dead actor
there are few examples, but they are targetting Akkling -> my fork of Akka.FSharp
Siemienik Paweł
@Siemienik
Hi everyone, I've just started use Akka.Persistance and I am not sure how It should handle collection with 130 000 entities.`
Before i used mongodb driver without persistence
My first idea: there exists CollectionPersistenceActor, which handle update/insert/remove commands. Each command as a query works on mongodbdriver directly(update, insert, remove). But in that case, what should happend on snapshot()?
Siemienik Paweł
@Siemienik
Second idea: CollectionActor that can create/stop/remove children actors(EntityPersistenceActor) and sending to they proper commands(update/snapshotAndStop). Each children actor has own persistenceId used to respawn. After snapshot the EntityPersistenceActor will be stoped. When the actor is required, will respawn by persistenceId.
But in that case i dont know how can i quick searching and ordering.
Thanks a lot:)
Andrey Leskov
@andreyleskov
@Siemienik I'm using same approach to work with each domain entity (aggregate) as a separate actor. Supervisor (CollectionActor) will spawn childs and pass commands to them, also it should be responsible for child termination on inactivity.
you can check example here
Andrey Leskov
@andreyleskov
Guys, can a Pool router terminate one of its children?
Andrey Leskov
@andreyleskov
Answer is : yes, if pool use resizer
Kevin Avignon
@Kavignon
I'll take a look at it tonight ! @Horusiath
Thanks :D
Andrey Leskov
@andreyleskov
Guys, I'm continue to investigate issue with event bus not delivering messages to subscribers
I have two subscribers - one is actor with random pool, and it is always receiving messages
other is actor with consistenthashing pool
and it loose messages randomly
may be I miss something in how pool is interacting with eventStream subscriptions ?
Bartosz Sypytkowski
@Horusiath
@andreyleskov clustered routers?
Andrey Leskov
@andreyleskov
no
one node with akka.remote
Bartosz Sypytkowski
@Horusiath
you're taking into account, that event stream works only for actors inside the same actor system?
Andrey Leskov
@andreyleskov
This message was deleted
Sure
I have only one system
and sometimes message is delivered good and sometimes not
here is how I create router :
 var routesMap = msg.Routes.ToDictionary(r => r.Topic, r => r.CorrelationField);

            if (routesMap.All(r => r.Value == null))
            {
                Log.Debug("Created random pool router to pass messages to {actor} ", msg.ActorName);

                return new RandomPool(Environment.ProcessorCount);
            }


            var pool = new ConsistentHashingPool(Environment.ProcessorCount,
                       m =>
                       {
                           var type = m.GetType();
                           string prop = null;

                           if (!routesMap.TryGetValue(type.FullName, out prop))
                                throw new CannotFindRouteException(m);

                           var value = type.GetProperty(prop).GetValue(m);

                           LogManager.GetLogger().Trace("routed message {msg} by property {property} with value {value}", m, prop, value);
                           return value;
                       });
it is a function returning a router
and it is passed to Props.WithRouter after
Bartosz Sypytkowski
@Horusiath
did you manage to make it into reproducible example?
this would help a lot
Andrey Leskov
@andreyleskov
right now no 8 ( working on it. I know it is correlated with system restart )
when I restart applications messages start to reach their subscribers for Ids not working before
Bartosz Sypytkowski
@Horusiath
routee actors are standard ones or maybe persistent actors or something else?
Andrey Leskov
@andreyleskov
in general any types of actors
but not persistent for sure
problems arise with routee witch itself controls a pack of persistence actors
and reroutes messages to it
routee just does not receive a message
Bartosz Sypytkowski
@Horusiath
routee witch itself controls a pack of persistence actors or router witch itself controls a pack of persistence actors?
Andrey Leskov
@andreyleskov
routee. I've tried a pool with persistence actors, it was bad )
Bartosz Sypytkowski
@Horusiath
I wanted to say the same ;)
Andrey Leskov
@andreyleskov
This message was deleted
schema is : publish message to event stream -> controller with pool router -> persistence actor living in controller internal collection
Bartosz Sypytkowski
@Horusiath
it would be good to make sure on which connection message has been lost
Andrey Leskov
@andreyleskov
I suspect hashing logic, and even added logging inside )) But cannot make logging work for now, investigating
Bartosz Sypytkowski
@Horusiath
heh, I've never liked routers (especially CH), too much magic. Never used them in any practical scenario and I'm still happy, that they're not going to be a part of akka-typed