Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Oct 14 21:02
    Aaronontheweb synchronize #3975
  • Oct 14 21:02
    Aaronontheweb opened #3975
  • Oct 14 20:11
    IgorFedchenko commented #3973
  • Oct 14 20:10
    IgorFedchenko synchronize #3973
  • Oct 14 20:06
    IgorFedchenko synchronize #3973
  • Oct 14 20:06
    IgorFedchenko synchronize #3973
  • Oct 14 19:42
    IgorFedchenko edited #3973
  • Oct 14 18:08
    Aaronontheweb commented #3937
  • Oct 14 17:27
    Aaronontheweb commented #90
  • Oct 14 17:26
    Aaronontheweb commented #90
  • Oct 14 17:25
    Aaronontheweb assigned #90
  • Oct 14 17:16

    Aaronontheweb on dev

    Provide static GetRoutees.Insta… (compare)

  • Oct 14 17:16
    Aaronontheweb closed #3974
  • Oct 14 17:16
    Aaronontheweb milestoned #3974
  • Oct 14 16:05
    jackowild opened #90
  • Oct 14 15:08
    Aaronontheweb commented #3974
  • Oct 14 15:08
    Aaronontheweb commented #3974
  • Oct 13 14:40
    cptjazz synchronize #3974
  • Oct 13 14:07
    cptjazz opened #3974
  • Oct 13 08:30
    ismaelhamed commented #3937
Bartosz Sypytkowski
@Horusiath

@shersh I don't think there's a written version of actual one. That being said, we have some plans in movement:

For v1.4:

  • A native multi-datacenter cluster support (major blocker right now)
  • StreamRefs
  • Akka streams connectors for IObservables

I know about those, as they are my responsibility. Also somewhere around 1.4-1.5 we want to upgrade to .net core 2.1 / .net standard 2.0. If this will be possible, a native support for DI containers could also happen around then.

Roman Golenok
@shersh
@Horusiath Thanks
Ilchert
@Ilchert
@Horusiath Thanks! so StreamRefs shouldn't have big changes?
Bartosz Sypytkowski
@Horusiath
The protocol itself uses protobuf for serialization (just like any internal akka communication protocols), so this will introduce new dependency in akka.streams package
Lutando Ngqakaza
@Lutando
Thanks @Horusiath you seem to be right, I am using postgresql plugin which uses NewtonSoft I presume
Bartosz Sypytkowski
@Horusiath
@Lutando check if you have configured ClusterSharding.DefaultConfig as a fallback, it contains definitions for clustersharding serializers
Lutando Ngqakaza
@Lutando
I had a look and its nothing out of the ordinary with my root config looking like
akka.actor.serializers : {
        json : Akka.Serialization.NewtonSoftJsonSerializer
        akka-sharding : "Akka.Cluster.Sharding.Serialization.ClusterShardingMessageSerializer, Akka.Cluster.Sharding"
        akka-cluster : "Akka.Cluster.Serialization.ClusterMessageSerializer, Akka.Cluster"
      }
      serialization-bindings : {
        "Akka.Cluster.Sharding.IClusterShardingSerializable, Akka.Cluster.Sharding" : akka-sharding
        "Akka.Cluster.IClusterMessage, Akka.Cluster" : akka-cluster
        "Akka.Cluster.Routing.ClusterRouterPool, Akka.Cluster" : akka-cluster
      }
      serialization-identifiers : {
        "Akka.Cluster.Sharding.Serialization.ClusterShardingMessageSerializer, Akka.Cluster.Sharding" : 13
        "Akka.Cluster.Serialization.ClusterMessageSerializer, Akka.Cluster" : 5
      }
Lutando Ngqakaza
@Lutando
I am slightly out of ideas :thinking:
Havret
@Havret
I am wondering which way is better for dealing with cross cutting concers like validation, logging in my actors: building proxy actors or hijacking messages inside AroundReceive?
Patrick Kelly
@featuresnap
When using Akka.Remote system hosted on a dynamically assigned TCP port number, is there a way to ask the ActorSystem (or some underlying configuration object) what TCP port number was actually chosen to host that system? I tried having the system create an actor and inspect its path, but apparently the tcp port number was not part of that actor's path. Maybe because, from the perspective of that local system, addressing one of its members did not require tcp transport? I didn't want to bring in Cluster, Lighthouse, etc
Chandra Sekhar Manginipalli
@leo12chandu
@Havret - if you need to create custom loggers, I think you could https://getakka.net/articles/utilities/logging.html
Edward Adjei
@eddadjei
am porting my akka.net service to .netcore. any advise how to?
Bartosz Sypytkowski
@Horusiath
@Lutando your config looks ok. Could you set an issue on github? Ideally with isolated scenario to reproduce (that will help fix it faster, and maybe also help yourself to identify an issue). Just to be sure: which version of akka.cluster.sharding are you using? (you should have 1.3.8 prerelese)
@Havret depends on what you want to do there. Sometimes those cross-cutting concerns are related to another actors. But things like validation and logging can be easily done inside actor itself (also akka supports logging etc).
@featuresnap ((ExtendedActorSystem)system).Provider.DefaultAddress.Port - keep in mind, it will be null if not specified.
Havret
@Havret
@Horusiath I mostly mean cross-cutting concerns involving cooperation with other actors, like asynchronous validation which require querying the actor model to check if certain domain invariants are satisfied. Currently, I am doing this sort of things inside the actor itself, but I am overwhelmed how this sort of code obscures the actual business logic.
Lutando Ngqakaza
@Lutando
absolutely @Horusiath I will try an isolated scenario and maybe that will help, if not I will file a bug with the isolated scenario's sample
Patrick Kelly
@featuresnap
@Horusiath thank you, exactly what I needed to determine hosting port number.
Lutando Ngqakaza
@Lutando
it looks like it is serialization
[WARNING][8/10/2018 2:34:10 PM][Thread 0003][[akka://mysystem/system/sharding/UserAccountAggregateManagerCoordinator/singleton/coordinator#1258714696]] Rejected to persist event type [Akka.Cluster.Sharding.PersistentShardCoordinator+ShardRegionRegistered] with sequence number [495] for persistenceId [/system/sharding/UserAccountAggregateManagerCoordinator/singleton/coordinator] due to [Error getting value from 'Provider' on 'Akka.Actor.Nobody'.].
anyone have a sample of akka cluster sharding working with persistence?
Bartosz Sypytkowski
@Horusiath
@Lutando what persistence engine and which version of akka.cluster.sharding are you using?
Lutando Ngqakaza
@Lutando
its PostgreSQL and i think it uses json serialization and that is my main suspicion.
to be honest our domain stuff is working fine on akka persistence its just the cluster sharding persistence not working, our stack uses redis and postgres so i have those options for persistence essentially
Bartosz Sypytkowski
@Horusiath
@Lutando what version of akka.cluster.sharding are you using?
Lutando Ngqakaza
@Lutando
i was using 1.3.2 then i upped them all to 1.3.8, if i dont figure it out by end of monday ill file an issue
LiuGuowen
@LiuGuowen
Hi Guys, recently I encountered a problem, there is a QA cluster with some kind of different services, I use a scheduler service to send "SyncOrder" command to another 2 order services, but finally we found a lot of messages are lost, it very strange, i don't know where is the root cause, do you have ideals about this ?
Nyola Mike
@nyolamike_gitlab
Some one please help me, how do I coonect my akka.net system with signalr in asp.net core2.1
AndreSteenbergen
@AndreSteenbergen
@nyolamike_gitlab Aaron made a github repository https://github.com/petabridge/akkadotnet-code-samples/tree/master/Cluster.WebCrawler In that crawler he made a docker system with SignalR. It would be too much info on gitter to explain all the steps. AkkaStartupTasks is called to provide the signalr actor the hub it needs. It is .net core 2.0, but it shouldn't be too hard to port to net core 2.1
Ismael Hamed
@ismaelhamed
@Horusiath When tagging events in a PersistentFSM, are event adapters my only option? Being able to persist Tagged events directly, like in a normal PersistentActor, would be more convenient since I'm trying to dynamically assign tags for sharding purposes in the Read Side.
Bartosz Sypytkowski
@Horusiath
@ismaelhamed the only thing that event adapter does is to map over your events before they are send to journal. You can do exactly the same right int your own code.
Bart de Boer
@boekabart
@PinkyBrain_gitlab You have to introduce an interface IMyType<out T> where the out does the trick.
Question about Persistence. We're struggling with understanding how to recover from a database glitch during persisting (or recovery, for that matter). (in particular, SQL server db is unreachable during 'failover' )
We've learned so far that Persistent actors stop in such an event, which I can understand. What we've done already, is supervise them with a strategy that will recreate them OnStop, with a backoff strategy.
Should that be enough? Or is the persistent plugin itself also in a state that needs recovering?
Maybe @Horusiath could enlighten us a bit?
Bart de Boer
@boekabart
It's not entirely clear what's going on in our application - but it is extremely SLOWLY processing data after such an event
Bart de Boer
@boekabart
2018-08-13 15:27:40,049Z INFO [10 ] RepointableActorRef Message LoadSnapshot from akka://DivvVfdeDrdataTEST/user/xxxx/BackofSuperVisor/AssetDelta/keyed.7ef4129d-c7dd-4516-bffb-4b915f3e4e18 to akka://DivvVfdeDrdataTEST/system/akka.persistence.snapshot-store.sql-server was not delivered. 639 dead letters encountered.
is the clearest indication we have that SMTH is not right
so question is - how should an application handle an error during persist (or, recovery).
At this point in time, the only 'reliable' way we still see, is to kill the ActorSystem and restart the whole thing. That can't be right, right?
tiny hydra
@tinyhydra
Hello. I'm fairly new to akka. I seem to have an issue where certain operations are taking exceptionally long to run. I'm running hundreds of actors, possibly over a thousand. My DB writes are timing out seemingly because the thread is repurposed and not returned in time. I'm speculating. Any thoughts?
tiny hydra
@tinyhydra
Many of the actors are executing long-running WMI operations.
Bart de Boer
@boekabart
Those (if not made Task-Async) will block your threads - hence limiting the # of parallel messages you can do to the # threads Akka gets/makes (from hocon config)
Try to limit the concurrency of the WMI operations to less than the # of worker threads
tiny hydra
@tinyhydra
can I increase the worker threads?
Bart de Boer
@boekabart
Yes, hocon. But you may want to consider the option above ^ for example, IIRC you can assign a dedicated thread pool to an actor/group of actors to prevent them from starving the general pool
tiny hydra
@tinyhydra
the main issue here is that the operation is started, but appears to be immediately interrupted. If I could wait to start until I was sure I had the thread for some length of time...
Bart de Boer
@boekabart
what do you mean with 'having the thread' ?
tiny hydra
@tinyhydra
the operation starts, but times out. There's no reason for it to do that. The db is very responsive, but it appears something is stealing its thread and doesn't return it for >30s
providing a dedicated thread pool sounds worth a try. How would I go about that?
I don't mind funneling my operations through a single DB actor, or some other queue to limit concurrency for this case.
Bart de Boer
@boekabart
Try the single Db actor (it's trivial to replace it later on with one that has N children to spread to load over)
tiny hydra
@tinyhydra
I did that last week, it didn't seem to make a difference. I've implemented the pinned-dispatcher just now, which has a peculiar effect - The DB write still fails to complete, but the single actor is still receiving dozens of messages; it doesn't appear to be processing a single message at a time.