/* Page prose (es) */
"DistributedFourPieces" = "# Las cuatro piezas\n\nCuatro cosas trabajan juntas. Vale la pena nombrar cada una.\n\n---\n\n## 1. El `distributed actor` en sí\n\nEl tipo. Como un actor local, es dueño de estado aislado. A diferencia de un actor local, *debe* estar asociado a un sistema de actores, y gana una identidad que puede entregarse a otros procesos (más sobre eso en un momento).\n\n---\n\n## 2. Métodos `distributed`\n\nEl subconjunto de métodos que expones a través de la red. Cada uno es un potencial **mensaje remoto**. Cualquier cosa no marcada como `distributed` permanece privada a quien sostenga una referencia local.\n\n---\n\n## 3. El `ActorSystem`: el transporte y el runtime\n\nEsta es la pieza sin equivalente en el actor local, y es el corazón de todo el modelo. Un **sistema de actores** es el runtime que de verdad localiza a los actores y transporta mensajes entre ellos: asigna identidades, serializa argumentos, envía bytes por alguna conexión, y entrega la llamada del otro lado.\n\nNormalmente no escribes uno tú mismo. Usas una implementación existente. La más prominente en 2026 es **`ClusterSystem`**, del paquete de código abierto Distributed Cluster de Apple, que enlaza procesos de Swift del lado del servidor en un clúster. La cadena de herramientas también incluye un `LocalTestingDistributedActorSystem` para ejercitar código distribuido en pruebas sin red real. De cualquier modo, el sistema de actores es una *dependencia que traes*, que es exactamente por qué esto no se ejecuta en Swift Playground.\n\nLe entregas el sistema a un actor cuando lo creas:\n\n```swift\n// `system` is an already-running ClusterSystem.\nlet ledger = Ledger(actorSystem: system)\n```\n\nEse parámetro `actorSystem:` no es uno que escribas a mano: el compilador sintetiza un inicializador que lo toma y lo conecta. El sistema es ahora responsable de este actor: le dio una identidad y sabe cómo enrutar mensajes hacia él.\n\n---\n\n## 4. El `ID`\n\nCuando el sistema de actores adopta un actor, lo sella con un **`ID`**, un nombre único y serializable para *esta instancia específica de actor*, tomado del propio tipo `ActorID` del sistema. El ID es lo que hace a un actor localizable desde otro proceso.\n\nSi la Sucursal A conoce el ID de un libro mayor que vive en el servidor de la Sucursal B, puede **resolver** una referencia a él y empezar a llamar métodos, sin sostener jamás el objeto real:\n\n```swift\n// Branch A resolves a remote ledger it never constructed.\nlet remoteLedger = try Ledger.resolve(id: knownID, using: system)\ntry await remoteLedger.deposit(50)\n```\n\n`resolve(id:using:)` no obtiene el estado del actor ni lo copia. Devuelve una **referencia remota**, un sustituto local que reenvía cada llamada a través de la red al actor real. El estado se queda en su sitio en la Sucursal B; solo los *mensajes* viajan.\n\n[Anterior](@previous)  |  página 4 de 9  |  [Siguiente: Async y throws](@next)";
