asynkron / protoactor-dotnet

Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin
http://proto.actor
Apache License 2.0
1.73k stars 288 forks source link

Road to "V2" #2102

Open rogeralsing opened 8 months ago

rogeralsing commented 8 months ago

First of all, I´m thinking that maybe we should just go semantic versioning and not make V2 something drastic. We can gradually add breaking changes without redesigning large portions.

e.g. (take these with a whole hand of salt, just ideas) Maybe context.Send should be async. so that you can await messages being pushed to a bounded mailbox Maybe eventstream.Publish should be async. so that you can await the event being consumed by all subscribers. Maybe context.Parent should be not nullable, and introduce a RootPid, Pid.None which could be used as the parent for top level actors.

Thoughts and suggestions?

rogeralsing commented 8 months ago

Another thing that would be nice to have, is to expand the decorator context. currently, you can only decorate the IContext. meaning you cannot intercept whenever an actor reincarnates, handles system messages, and so on.

It would be nice to have those options. e.g. for improved observability

rogeralsing commented 7 months ago

Make it possible to publish to event-stream from a given actor context. currently we are sending from root context, and if tracing is enabled but not for root context, nothing shows up for this operation.

suggestion:

system.EventStream.Publish(someEvent, context);