ActorSystem is the starting point of an Akka application: it creates top-level actors, roots their hierarchy, and represents the whole system. A common design creates one top-level guardian, which supervises the actors beneath it. The system also provides the configured nexus for capabilities such as scheduling, remoting, and durability extensions. section 1.7.1 section 3.0
Creating an ActorSystem returns an ActorRef rather than direct access to an actor. Send messages through that reference with tell (`!`). In typed Akka, `ActorSystem[Int]` accepts only `Int` messages; attempts to send another type fail at compile time. Actor names are unique among siblings, and actor paths locate references by absolute or relative path. section 1.7.1 section 2.2.3
Start and stop a wallet guardian
Create a typed guardian with `ActorSystem(Wallet(), "wallet")`, send it `1` and `10` using `!`, then call `guardian.terminate()` when the application exits. Graceful termination lets running modules release resources such as HTTP or database connections. section 2.2.3 section 2.2.5
Use an ActorSystem to organize and operate an actor application:
- Build a parent-child hierarchy: actors created by the system become its children and may create further children. section 3.4
- Supply or read configuration per system; multiple ActorSystems can have distinct configurations. section 7.2
- Expose actors to external clients through HTTP or gRPC server endpoints. section 11.0
- Run black-box asynchronous tests with a real ActorSystem through ActorTestKit and TestProbe. section 4.3
The TeamChat diagram makes the system boundary and its top-level actor hierarchy visible. section 1.7.1
