-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mind notes - design issues #1
Comments
I still need to figure out how to properly replace the RemoteActorRefProvider, maybe just copy paste all code from the original class. Another interesting thing to solve, the old async await TaskScheduler bits also needs to work. |
The current actor context needs to be intercepted somehow. |
Intercepting ActorSelection:
|
If I just copy contents of ActorSelection and inject a tracable anchor. it might work? |
Next issue. how do I know if headers should be used for e.g. remote senders? Maybe it could be possible to determine if headers should be used if target actorref is in user-space? |
This library uses a custom ActorRefProvider to allow decorating actors with middleware.
This works but is problematic in a few ways:
In Proto.Actor, messages can have headers, just like in HTTP etc.
Akka.NET does not have this. therefore I'm using an envelope type for the payload.
This means that when sending a message, we either need to know up front if the target actorref belongs to a tracable actor.
so that we don't send envelopes to non-traced actors.
Or, we just make it so that all local actors are decorated with the tracing middleware, and get around this issue that way.
Another issue is likely Akka.Remote, e.g. if a remote node does not have tracing enabled, then sending envelopes to those would fail.
Therefore, I think the naive but pragmatic way would be to enforce that all nodes in the Akka.NET system/cluster all have this extension enabled.
If someone has any other ideas, shoot
The text was updated successfully, but these errors were encountered: