Skip to main content
A guided tour of the codebase. Start with actor/—everything flows from there.

Top-level layout

Key files in actor/

Grouped by subsystem.

Core API and runtime

Scheduler — the dispatcher pool

See Dispatcher Pool for the full design.

Mailboxes

Behaviour, supervision, lifecycle

Guardians, routing, scheduling, scheduled delivery

Cluster, remoting, multi-DC

Grains (virtual actors)

CRDT replicator

crdt/

Pure CRDT data types and replication configuration — no import of actor. User and Replicator code interact via crdt messages and ReplicatedData values. See Distributed data and the repository architecture/CRDTs.md.

stream/

Reactive pipelines (Source, Flow, SinkRunnableGraph) materialized onto an ActorSystem with backpressure. See Streams and the repository architecture/REACTIVE_STREAMS.md.

remote/

Configuration, serializers, and wire helpers for the remoting layer. The remoting server lives at actor/remote_server.go; the remoting client lives at internal/remoteclient/.

discovery/

Pluggable service discovery. Each sub-package implements discovery.Provider:

datacenter/

client/

Standalone cluster client for callers outside the actor system. See Client for full documentation.

Internal packages

protos/

Dependency summary

log, errors, extension, eventstream, supervisor, passivation, reentrancy, hash, breaker, memory, tls, and crdt are leaf packages—they depend on nothing else in this repository.

See also