Chapter 2: Extensions
Extensions add optional capabilities to the ActorSystem without changing its core. Examples include metrics exporters, cluster providers, or dependency injection helpers.
Creating an Extension
C# example registering a simple extension:
using Proto;
public class MyExtensionId : ExtensionId<MyExtension>
{
public override MyExtension CreateExtension(ActorSystem system) => new MyExtension();
}
public class MyExtension : IExtension { }
var system = new ActorSystem();
system.Extensions.Register(new MyExtensionId());
Go example:
package main
import (
"github.com/asynkron/protoactor-go/actor"
)
type myExtension struct{}
func (*myExtension) Started(*actor.ActorSystem) {}
func main() {
system := actor.NewActorSystem()
system.Extensions.Register(&myExtension{})
}