Estamos considerando Elixir o Erlang para el back-end de nuestra aplicación móvil debido a la arquitectura multinúcleo de EVM. ¿Qué más deberíamos considerar?

Escribir un back-end completamente en Erlang es un enfoque bastante viable, pero si debe considerar algo más también depende completamente de lo que hace su aplicación y de lo que necesita que haga el back-end. En primer lugar, debe permitir que su comprensión de los requisitos lo lleve a la tecnología más adecuada.

Escribir un prototipo funcional en Erlang seguramente será divertido y productivo, pero también considere, por ejemplo:

  • Definir / seleccionar un buen protocolo entre la aplicación y el back-end. Probablemente tenga sentido dejar que la aplicación finalice esto: especialmente en Erlang, puedes hackear rápidamente cualquier protocolo, pero puede que no sea tan fácil en el lado de la aplicación.
  • Describa cuidadosamente sus requisitos de datos: patrones de acceso, escala, redundancia, persistencia, … Esto probablemente apunte a alguna solución de base de datos existente. Como alguien a quien le encanta escribir código de base de datos, le sugiero encarecidamente que elija algo que ya se sabe que funciona.
  • ¿Necesita un front-end de autenticación y / o equilibrio de carga? Hay soluciones maduras para esto, y debe tener argumentos sólidos para renunciar a ellos en favor de algo que usted mismo escriba. Especialmente su historia de seguridad será más creíble si utiliza un enfoque probado.
  • Implementación: de nuevo, hay soluciones existentes, y considera que las personas a las que hay que complacer aquí son chicos de DevOps, no los desarrolladores iniciales. Haga que algún tipo de DevOps experimentado participe en el diseño temprano, sin embargo, no les dé demasiada voz. 😉 Su experiencia está en apoyar el producto final, y primero debe asegurarse de llegar allí.

Habiendo dicho todo esto (y aún sin saber lo que estás planeando construir), no asumas demasiado demasiado pronto. Elija un producto mínimo viable y juntar algo en Erlang, por ejemplo, utilizando el MMSIA DBMS * que viene con él, es un gran primer paso. No tiene mucho sentido diseñar para un millón de usuarios hasta que demuestre que puede atraer a los primeros 10. No modifique demasiado la primera versión.

* Seguramente habrá escuchado que Mnesia tiene todo tipo de debilidades, pero tenga en cuenta que se ha utilizado durante décadas en productos “5 nueves” y que fue lo suficientemente bueno para, por ejemplo, WhatsApp [1] y Klarna [2].

[1] Cómo WhatsApp creció a casi 500 millones de usuarios, 11,000 núcleos y 70 millones de mensajes por segundo – Alta escalabilidad –

[2] Conferencia de usuarios de Erlang 2015