https://drive.google.com/file/d/1V-NMQzKNhXxBAi29EyeoIqXVZDS0y02F/view
Actor
El actor es la primitiva principal del modelo.
- Son livianos, se pueden crear miles (en lugar de threads).
- Encapsulan comportamiento y estado.
- Compuesto por:
- Dirección: donde enviarle mensajes.
- Casilla de correo (mailbox): un FIFO de los últimos mensajes recibidos.
- El actor supervisor puede crear otros actores hijo.
- Son aislados de otros actores: no comparten memoria.
- El estado privado solo puede cambiarse a partir de procesar mensajes.
- Pueden manejar un mensaje por vez.
- En un sistema distribuido, la dirección del actor puede ser una dirección remota.
Mensajes
Los actores solo se comunican entre ellos solamente usando mensajes.
- Los mensajes son procesados por los actores de forma asincrónica.
- Los mensajes son estructuras simples inmutables.
Actores en Rust (Framework Actix)
- Usa tokio y futures como runtime de sustento. Se ejecutan dentro del Sistema de Actores.
- El núcleo es el tipo Arbitrer: un thread que crea un event loop por debajo y provee un handler.
- Cada actor se ejecuta dentro de un arbiter.
- El handler se usa para enviar mensajes al actor.