¿Cómo aprende un desarrollador frontend a construir una arquitectura backend escalable?

Voy a escribir esto con un poco de prejuicio, pero hice la transición yo mismo hace casi 17 años, así que creo que puedo darle algunos buenos consejos.

Primero, toma la forma en que piensas abordar tus scripts y dale la vuelta. Cuando trabajas con JS, es importante hacer que algo se procese lo más PRONTO posible, luego, cuando puedas renderizar la siguiente pieza, lo haces al instante, de esta manera cambias de un lado a otro hasta que la página se renderice por completo y se complete y sus programas terminados

Trabajar con un backend escalable es exactamente lo contrario, comienza a entregar la solicitud, despacha todo lo que necesita para completar la solicitud, y hasta que TODAS esas piezas regresen, se olvida. No solo te olvidas de eso, tomas la solicitud y la pegas en algún lugar y vuelves a ella de vez en cuando SOLO para verificar sus promesas. Una vez que TODAS las promesas están completas, ENTONCES cambias a ellas, luego construyes una respuesta, reúnes todos tus objetos y envías la respuesta, y luego vuelves a hacer todo lo demás. Siempre hay mucho más por hacer.

También aprende cosas sobre el almacenamiento en caché, sobre cómo abandonar una solicitud a mitad de camino, cómo crear procesos de carrera, cómo recuperar e integrar datos de múltiples almacenes de datos, cómo hacer cosas como agregar múltiples respuestas de servicios en una sola respuesta (a menudo utilizando un servicio intermedio ), incluso utilizando marcos o creando sus propios servicios intermedios que almacenan en caché las respuestas intermedias para descargar que funcionan para usted. Aprende a hacer todo lo posible para que el servicio que se encuentra en la manguera de bomberos haga lo menos posible hasta que llegue el momento de responder con todo el trabajo que su back-end ha hecho por usted. Así es como debe funcionar la aplicación web responsable de enviar servicios al backend.

Y tiene que hacer esa tarea en docenas de servidores diferentes al mismo tiempo, todos se conectan al mismo backend, hablan con orquestadores y servicios similares, y todos gestionan caché, recuperan datos y usan algoritmos y otros trucos para minimizar las solicitudes, o golpear el caché en lugar de forzar realmente una consulta de base de datos. Debe aprender a crear herramientas para encender o apagar un sistema como este, calentarlo o reiniciarlo sin perder las conexiones abiertas. Tendrá que aprender a trabajar en la nube, lo que, después de trabajar en el navegador, no es tan malo. Aprenderá a trabajar directamente con bases de datos, con SQL, con noSQL, con servidores de mensajería y autobuses de servicio empresarial.

Pero, sinceramente, hace muchos años trabajé en un software de navegador diseñado para presentar una experiencia de comercio electrónico perfecta en IE6, Netscape 4 y Opera con un tiempo de representación de menos de 5 segundos, ocasionalmente renderizando XML a través de XSLT. La mayoría de las cosas que enumeré anteriormente son más fáciles de lo que era.

Buena suerte y bienvenido al lado oscuro. Tener una galleta