These are chat archives for akkadotnet/akka.net
actorPool.Tell(new Tuple<AggregateRuleGroup,double>(ruleGroup, lastProcessedDatetime));
Context.Stop(Self);if child are done, but, now I need wait outer Actor something like
,in prev message before >in parent
AD 1. Problem with unhandled exceptions is that they are expensive (in the scale we're talking here) - imagine following case: you have message pipeline between 3 actors: A ⇒ B ⇒ C. Each actor has it's own in-memory state (which is also backed up in the database). Thanks to that, you don't need to reach the database each time you want to retrieve part of the state, greatly increasing the throughput. However if inside call pipeline C will blow up, and an error could be potentially 1) roll it back to the caller or 2) escalate upward parent hierarchy . Both cases would result in series of cascading failures, causing your actors to restart and requiring each one of them to retrieve it's state again from the database, crippling the overall performance of your system. With supervision strategy you can "cut the wire" and react before the error spreads out.
AD 2. In case of failing database connection restarting actor wouldn't make a difference - moreover it would probably blow up the rest of the system, as you'd hit 100% failure ratio, restarting an actor each time and trying to reconnect db again (which may not be dead but just slow under huge pressure) - hitting it thousands times per sec won't help anything. This is why we have circuit breakers and exponential backoff strategies.
AD 3. You don't throw exceptions for validation - this is terrible idea and one of the worst habits of .NET devs.
Context.Child()to find the child for you?
hashPool -> processActor -> broadcastGrouphow would I configure the broadcastGroup in HOCON?
/hashPoolRouter/<some generated name>/processActor/broadcastGroup