Es común escuchar a programadores con no mucha experiencia, querer comenzar toda aplicación pensando en microservicios.
El microservicio es una complejidad que debe ser justificada, no solo usarlo porque suena bien.
Al usar microservicios nos llenamos de preocupaciones extras, que van desde como vamos a comunicarlos con otros microservicios, que pasa cuando un microservicio no responde, o que va a pasar cuando publiquemos cientos de microservicios. Pero estas desventajas vienen en conjunto con ventajas.
Pero al iniciar a crear una aplicación, ir directamente a complicarla con microservicios, es de las peores decisiones que puedes tomar como Arquitecto de Software.
La Arquitectura Monolítica no está peleada con los microservicios, muchas veces veo que el principal problema a la hora de pasar algún módulo de un monolito a microservicio: es la falta de conocimiento de Arquitectura de Software. Pero el monolito puede ser estructurado de una manera que permita escalar a microservicios, si es que se requiere.
A continuación, te muestro con ejemplos paso a paso como estructurar una Aplicación Monolítica que esté preparada por si se necesita escalar a Microservicios:
Si quieres aprender más sobre Programación, puedes suscribirte a mi plataforma Metal Code, donde encontrarás cursos de programación a un precio siempre accesible: https://metalcode.io/