Estaba leyendo un interesting blog post sobre Erlang y el modelo de actor. También escuché que scala admite el modelo de actor. De lo poco que he reunido hasta ahora, el modelo de actor descompone el procesamiento en componentes que se comunican entre sí transmitiendo mensajes. Típicamente, esos procesos son inmutables.es el modelo de actor limitado a idiomas específicos?
¿Son esas características específicas del lenguaje, o más, en el nivel de la arquitectura? más específicamente, ¿no puede simplemente implementar el mismo modelo de actor en casi cualquier idioma, y simplemente usar alguna forma de cola de mensaje para pasar mensajes entre procesos de trabajo? (por ejemplo, use algo como celery). ¿O es que esos lenguajes como erlang y scala simplemente lo hacen de forma transparente y much faster?
Gracias @dsmith. Eso es interesante. Entonces, si entiendo esto, el estado mutable compartido es la principal fuente de problemas.Hasta donde yo lo veo, cualquier arquitectura basada en cola de mensajes que transfiera tareas/datos serializados a procesos de trabajo debería, por lo tanto, ser prácticamente inmune a eso. Por lo tanto, ¿es compatible con el modelo de actor? Por lo tanto, ¿puede suponerse que, por ejemplo, apio ya implementa el modelo de actor? – gingerlime
La clave es el aislamiento del estado mutable. Erlang aísla el estado mutable en procesos livianos. El estado de los nodos estaría aislado en los procesos del sistema operativo con un único hilo de ejecución. Y, sí, las soluciones de mensajería como apio/rabbitmq exhibirían las mismas cualidades. – dsmith
Gracias de nuevo. Acepté su respuesta (junto con la información adicional proporcionada por @talg, que realmente lo completó). Obtuve una mejor imagen ahora sobre erlang y, sin embargo, es útil saber que el modelo de actor aún se puede implementar (aunque en una forma algo limitada) con algo como python/apio/rabbitmq, etc. – gingerlime