Skip to main content
This page lists the interfaces to implement when extending the framework. Wire implementations via the indicated options.

Discovery Provider

Create a sub-package under discovery/. Pass the provider to ClusterConfig when creating the actor system. See discovery/selfmanaged for a built-in zero-config provider using UDP broadcast.

Mailbox

Create a file in actor/. Pass via WithMailbox(mailbox) as a SpawnOption. Reference unbounded_mailbox.go and unbounded_priority_mailbox.go.

Extension (system-wide)

ID must be unique, alphanumeric, up to 255 chars. Add domain-specific methods to your concrete type. Pass via WithExtensions(ext) when creating the actor system. Actors access via ctx.Extension(id) and type assertion. See Extensions and Dependencies for usage.

Dependency (per-actor)

Dependencies must be serializable for cluster relocation. Pass via WithDependencies(dep) as a SpawnOption, or register with the actor system via system.Inject(dep) after startup. Actors access via ctx.Dependencies() in PreStart, Receive, PostStop. See Extensions and Dependencies for usage.