Angular.JS en el frente y un back-end Express es definitivamente una elección justa. Se podría argumentar que React.JS es más popular en este momento, pero Angular existirá durante mucho tiempo. Express es en gran medida el estándar para las aplicaciones web Node.JS, por lo que no hay ningún problema allí.
Mirando más a fondo los detalles, mencionas ORMs y Sequelize. Esta es un área donde hay más fragmentación en el ecosistema Node. Sequelize probablemente se considera uno de los ORM más maduros para el nodo (considerando Waterline y Bookshelf como alternativas populares), aunque hay muchos desarrolladores que recomendarían renunciar a un ORM y trabajar directamente con SQL.
Cuando se trata de almacenamiento de datos de uso general, MySQL está bien. Tengo una preferencia personal por Postgres, pero para ser justos, las características son muy similares.
- ¿Dónde puedo obtener temas de arranque personalizados?
- ¿Cómo puede un principiante en HTML y CSS crear una barra de navegación como esta?
- Cómo configurar un sitio de WordPress que venda cursos de inglés en vivo
- ¿Por qué la gente desaconseja usar la etiqueta de tabla en HTML?
- ¿Qué tecnologías se deben usar si quieres hacer un servicio como Flickr?
Donde las cosas se ponen interesantes es cómo procesar y almacenar las líneas de tiempo, los feeds y las relaciones con los seguidores (el gráfico social). Para las aplicaciones de consumo público que alcanzan una escala interesante (# usuarios activos, siguiendo relaciones por usuario, publicaciones por mes, etc.), una base de datos relacional generalmente se convierte en un cuello de botella en el rendimiento.
Se pueden agregar soluciones de almacenamiento especializadas como Redis, Cassandra, a la arquitectura para mejorar el rendimiento y esto a menudo puede ser exitoso. El principal desafío con este enfoque es el aumento de la complejidad de la aplicación y los costos para mantener estos componentes adicionales. Ahí es donde un servicio alojado como Stream (divulgación: donde trabajo) es a menudo una solución más simple y económica.
La consideración final que ofrecería está fuera de la tecnología. En realidad, es muy importante tener en cuenta su conjunto de habilidades (e intereses) existentes, así como su equipo actual y los posibles miembros futuros del equipo. ¡Trabaja con tecnología que disfrutas y con la que puedes ser productivo y estarás en buena forma!