Skip to content

Align Go implementation with .NET #406

Closed
@rogeralsing

Description

@rogeralsing

There are some major changes that have been added to the dotnet version of Proto.Actor that needs to be ported over to Go also:

ActorSystem

ActorSystem, instead of the current global allocation of actors, we introduced the Akka-like ActorSystem to Proto.Actor dotnet.
This helps with configuration and testing. e.g. it makes it possible to run multiple remote and cluster instances in a single test.
This is a fairly major rewrite that needs to be completed before any other updates can be ported over.

ActorSystem Configuration

Minor update where it is possible to configure DeadLetter logging to throttle after x messages in y time.

IIdentityLookup

IIdentityLookup, allows for pluggable cluster actor identity lookups.
e.g. dotnet now has a MongoIdentityLookup, which becomes the source of truth for actor placements.

Cluster vs Remote configuration

Wit the introduction of IIdentityLookup, the "Known kinds" of remote has been split into two, RemoteKinds and ClusterKinds.
The functionality is still the same, but the backing implementations can differ.
e.g. cluster actors are initialized with cluster information.

ClusterInit

Related to the above, each cluster actor is initialized with a ClusterInit message upon start, this message contains the Identity, Kind and Cluster instance information.

Cluster Actor Placement strategies

We are also working on adding more strategies for Cluster actor placement. e.g. a "Local affinity strategy", where the actors are spawned at the first node that request them (if possible).

This works extremely well with scenarios such as ingesting data from partitioned Kafka topics. where the actors related to messages on a given topic then becomes local.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions