3.2 KiB
Distributed
Build systems that run distributed code across multiple processes and devices.
Distributed actors share many characteristics with Swift actors, and include additional isolation checks to ensure location transparency and safety in a distributed environment. Similar to how actors make it easier to write concurrent code that's safe and correct to run on a single computer, distributed actors make it easier to write code that runs across multiple computers.
You use three main parts when writing code with distributed actors:
-
Swift language support for distributed actors and for building distributed or RPC systems integrated into the language. For more information, see Concurrency in The Swift Programming Language.
-
The Distributed module, which includes the types and protocols you need to declare and use distributed actors. For example, it has protocols to which distributed actors and distributed actor systems conform, and structures that encapsulate information about calls to a distributed actor.
-
A distributed actor system provides an implementation of the
Distributed/DistributedActorSystemprotocol and coordinates between the cluster's nodes. A distributed actor is always part of some distributed actor system; that distributed actor system handles the serialization and networking necessary to perform remote method calls. For local testing, you can useDistributed/LocalTestingDistributedActorSystem. For production, you can useClusterSystemoffered by the Swift Distributed Actors library, use another library, or write your own distributed actor system.
Topics
Distributed actors
Distributed/DistributedActorDistributed/Resolvable()Distributed/buildDefaultDistributedRemoteActorExecutor(_:)
Distributed actor system
- doc:implementing-a-custom-distributed-actor-system
Distributed/DistributedActorSystemDistributed/RemoteCallTargetDistributed/RemoteCallArgumentDistributed/DistributedTargetInvocationEncoderDistributed/DistributedTargetInvocationDecoderDistributed/DistributedTargetInvocationResultHandler
Local testing
Distributed/LocalTestingDistributedActorSystemDistributed/LocalTestingActorIDDistributed/LocalTestingActorAddressDistributed/LocalTestingInvocationEncoderDistributed/LocalTestingInvocationDecoderDistributed/LocalTestingInvocationResultHandler
Errors
Distributed/DistributedActorCodingErrorDistributed/DistributedActorSystemErrorDistributed/ExecuteDistributedTargetErrorDistributed/LocalTestingDistributedActorSystemError