Si el front-end de mi aplicación web es síncrono, ¿ayuda tener un back-end de microservicios asíncronos?

En la posibilidad casi segura de que esté utilizando oyentes de eventos en su aplicación web, está aprovechando la asincronía: su aplicación web puede ser más asincrónica de lo que cree. Si escucha los eventos de clic, la entrada del usuario o incluso realiza solicitudes HTTP AJAX, está aprovechando el poder de la ejecución asincrónica.

De todos modos, la forma en que elige manejar las cosas en el cliente no influye en las ventajas reales que puede ver cuando utiliza la asincronía en el back-end. La ventaja de la ejecución asincrónica en el back-end gira en torno al hecho de que cosas como la lectura / escritura de archivos y las llamadas a la base de datos no son de bloqueo . En un entorno síncrono, hacer una llamada externa implicará esperar hasta que se realice esa llamada antes de proceder a hacer cualquier otra cosa . Estás inactivo por la duración. En un entorno asíncrono, una vez que realiza la llamada externa, reanuda el trabajo en otros elementos en la cola de eventos; una vez que finaliza la llamada, también se colocará su devolución de llamada en la cola de eventos y todo se resolverá a su debido tiempo. Esto significa que no estará inactivo hasta que se agote la cola de eventos y se hayan manejado todas las solicitudes.

Aunque hay algo de sobrecarga que viene con la asincronía (principalmente en términos de mayor complejidad del código), generalmente es una ventaja para la eficiencia.

Como señaló @Sean Grogg, todavía hay beneficios para el comportamiento asincrónico en el back-end, incluso si no lo usa en el frente.

Como también mencionó que agrega complejidad.

Un dicho común en estos días en el mundo del desarrollo es que “la optimización prematura es la raíz de todo mal”. Diré que no es 100% exacto, hay muchos más males que eso, particularmente si ignoras la eficiencia y sigues no trabaje para hacer que el código sea más fácil de mantener.

Si la eficiencia no parece ser un problema inminente, entonces probablemente pueda esperar hasta más tarde. Sin embargo, asegúrese de que el código siga las buenas prácticas, como la legibilidad del código, las pruebas unitarias, el principio de responsabilidad única, etc. De lo contrario, cuando llegue a un punto en el que la eficiencia es un problema, puede resultar muy difícil fijar.

espero que esto ayude

More Interesting

¿Cómo es el futuro de Scala and Go para el desarrollo de backend? ¿Cuál debería aprender?

¿Cuánto de una vista dinámica desea renderizar usando un motor de plantillas (como Moustache)?

¿Cómo funcionan juntas las tecnologías front-end y back-end?

¿Cuál es el proceso de conectar el código front-end (HTML / CSS) con el código back-end (Java) en el desarrollo web (con un ejemplo)?

Cuando se usa Angular en el front-end, ¿cuál es una gran alternativa para un marco PHP voluminoso para crear un back-end para los inicios de sesión de los usuarios y la recuperación de datos?

Cómo comenzar a construir un backend como plataforma de servicio desde cero

¿Cuándo debería un principiante de programación comenzar a aprender el desarrollo de backend y la implementación en la nube?

¿Por qué la mayoría de las aplicaciones a gran escala se desarrollan en Symfony?

¿Es común que los desarrolladores frontend no puedan ganar el mismo nivel de respeto que los desarrolladores back-end porque frontend es más fácil?

¿Cuál es el mejor marco de back-end para un desarrollador con un fondo PHP / JS / C #?

¿Cómo debo comenzar a aprender el desarrollo front-end y back-end?

¿Cuáles son las principales diferencias en los lenguajes de programación de back-end (PHP / JS / Python / y otros)?

¿Por qué no se usa JavaScript para el desarrollo de back-end?

Cómo cargar un archivo a Amazon S3 usando el nodo y obtener la ruta del archivo

¿Necesito aprender un lenguaje de back-end para construir un clon de Wikipedia o sería suficiente un conocimiento de HTML y CSS?