Tengo una aplicación Erlang/OTP que tiene cierta lógica comercial. Está escrito en Erlang principalmente para tolerancia a fallas, porque puedo reiniciar fácilmente uno de los componentes bloqueados del sistema (el mayor tiempo de actividad es el requisito más importante). Cada uno de sus componentes realiza algún tipo de cálculos "paralelos" específicos.Uso de OTP/Erlang como parte de la arquitectura basada en componentes de una aplicación web
Como resultado de un ciclo de trabajo, la aplicación genera una lista de valores. Llamemos a esta aplicación Erlang/OTP un "back-end".
Esta aplicación Erlang/OTP también usaría un servidor PostgreSQL para almacenar los resultados en el almacenamiento persistente y almacenar la metainformación adicional necesaria para sus cálculos (aún no implementada).
Siguiente Necesito agregar un front-end a esta aplicación Erlang/OTP, una solución simple basada en la web que puede servirle a un usuario web: acepte una solicitud de cómputos de él/ella, solicite al back-end haga los cálculos y devuelva al usuario el resultado del back-end.
No hay ningún requisito escalabilidad, creo que el número máximo de usuarios por día puede no ser más que 1000.
Así que mi tarea actual ahora es implementar un front-end común para mi back-end de Erlang/Aplicación OTP (común significa que tengo un caso de uso típico: visitar el sitio, registrarme, iniciar sesión, usar la aplicación, obtener el resultado en una buena página web atractiva, cerrar sesión). Por un lado, sé que la reutilización de código puede ahorrarme mucho tiempo: por ejemplo, con Ruby on Rails puedo obtener autenticación de usuario, almacenamiento de contraseñas, interfaces ajax y muchas otras cosas gratis.
Por otro lado, no sé nada sobre el diseño de una aplicación que comprenda un servidor back-end Erlang/OTP + PostgreSQL y un framework web (RoR, Django, etc.) como front-end.
Muchas preguntas me vienen a la mente: ¿Deberían Erlang/OTP y el framework web usar la misma base de datos PostgreSQL para compartir el resultado? ¿Cuál es la mejor manera de enviar una solicitud de cálculo desde el marco web a la aplicación Erlang/OTP y recuperarla? ¿Cómo superviso el servidor PostgreSQL? ¿No está cubierto por la tolerancia a fallas de OTP?
En general, tengo algunos componentes de software heterogéneos y deseo construir un sistema que funcione a partir de ellos (el componente "principal" es la aplicación Erlang/OTP).
¿Dónde debo comenzar con esta tarea? ¿Me puede dar algún consejo o pista sobre qué recursos leer?
P.S. Intenté leer this y seguí los enlaces, pero no entendí mucho.
UPD: sé que Chicago Boss y otras web marcos Erlang existen, pero dudo que alguno de ellos tiene un ambiente tan madura, comunidad vibrante y enorme variabilidad de los diferentes plugins y librerías como por ejemplo Ruby on Rails, Django o cualquier framework MVC basado en PHP. ¿Derecha?
UPD2: Tal vez tenga que profundizar más en esto: también necesito que el front-end sea lo más fácil de mantener posible. Hacerlo en Erlang significa que podría enfrentar problemas para encontrar a los desarrolladores adecuados para mantenerlo; hacerlo en RoR, Django, etc. significa que puedo encontrar fácilmente la fuerza de trabajo para mantener el front-end y para crecer.
He editado mi respuesta también. Revisa la actualización de la respuesta. gracias –