Hola Luis, lo tendremos en cuenta, en realidad es más complejo, recuerda que microservicios es un estilo arquitectónico para construir aplicaciones. En resumen, sí, prepararé algo para construir varios servicios y aplicar algunas patrones de los se aplican para construir microservicios, quiero preparar un curso con ello. Gracias por visitar el canal 🙂
Hola, los microlitos son un intento de hacer microservicios pero incompletos por alguna razón, una de ellas y la más común es que comparten la base de datos o la infraestructura de despliegue y esto hace que no se pueda escalar demasiado horizontalmente, lo que va contra el principio de los microservicios. Gracias por comentar.
Los productos, los clientes, los pagos, todo... esta relacionado en algún punto, esto como se resuelve con BD separadas? donde se guardan las relaciones? las BD estarán en la misma infraestructura física?, si es así esto como "mejora" con respecto a tener una sola base de datos ? , que pasa con la transaccionalidad?, se puede evitar duplicar información en las BD por motivos de optimizacion en busquedas?
Hola Ale, que tal estás ? Ese es el reto y el costo de ganar en escalabilidad, los datos se duplican y van a cada servicio los que el servicio necesita, hay que implementar mecanismo de consistencia eventual y dejar de pensar en que una sola base de datos es la fuente de la verdad. Es difícil, pero es la única forma de ser escalables. Hay que implementar acciones compensatorias, sagas. Es duro, pero así son los microservicios y es la única vía de escalar "sin límites". Saludos
Hola muchas gracias por tus videos....solo tenía una duda..para hacer consultas cruzadas joins de tablas ubicadas en distintas base de datos (distintos vps) entiendo que se aplica un API Composer..tendrás más info sobre ello?? O quizas otra estrategia...muchas gracias.
Hola Diego, eso que quieres hacer no es ni performante ni desde el punto de vista de diseño escalable. La solución está en cada servicio tenga los datos que necesita para operar aunque estos se repitan en cada base de datos, una vez tengas esto el reto es mantener la consistencia de los datos, ahí puedes aplicar alguna estrategia de EDA. Por otro lado si deseas usar alguna estrategia de composición como la que comentas puedes usar la solución apollo de Spotify. Saludos, gracias por comentar.
Excelente explicación, tengo una duda, voy a usar este ejemplo: Tengo un microservicio con su propia base de datos que se encarga de gestionar usuarios, y tengo otro microservicio que se encarga de gestionar artículos también con su propia base de datos, cada articulo esta asociado a un usuario, dicho esto, necesito mostrar en el sitio web una lista con todos los artículos y los datos de contacto de su creador. Tendría que hacer un request para traer todos los artículos, y luego otro request por cada articulo para obtener los datos del usuario? Y si tengo 1000 artículos, serian 1000 request para obtener los datos del creador de dicho articulo? Espero se entienda mi pregunta y espero puedas darme una idea para resolver este asunto. Gracias, saludos desde Nicaragua.
Hola Damian, estaría mal si hacemos esto. Lo ideal sería que en el momento de crear un producto ya guardar junto con el producto la información del usuario creador del mismo (no toda), solo la necesitas usar según el negocio. La idea detrás de esto es evitar ese sin número de llamadas. Tienes que tener en cuenta que cuando cambie la información de un usuario ese cambio debes propagarlo (en un bus de mensajes) y actualizar los datos del usuario relacionado en la base de productos para que el sistema quede consistente. Espero hayas entendido, ando preparando un curso de este tema con algunos ejemplos. Pero dime si te queda duda. Buen fin de semana.
@@SACAViXTech Muchas gracias por la información, lo he entendido perfectamente. Seria muy bueno que en tu curso agregues ejemplos de como manejar los distintos tipos de relaciones en un entorno de microservicios. Saludos.
Estos videos me ayudan demasiado, me gustaría que hicieras un video/directo donde muestres como crear un microservicio de manera correcta.
Hola Luis, lo tendremos en cuenta, en realidad es más complejo, recuerda que microservicios es un estilo arquitectónico para construir aplicaciones. En resumen, sí, prepararé algo para construir varios servicios y aplicar algunas patrones de los se aplican para construir microservicios, quiero preparar un curso con ello. Gracias por visitar el canal 🙂
Buen video, Que diferencia hay entre microlito y monolito modular?
Hola, los microlitos son un intento de hacer microservicios pero incompletos por alguna razón, una de ellas y la más común es que comparten la base de datos o la infraestructura de despliegue y esto hace que no se pueda escalar demasiado horizontalmente, lo que va contra el principio de los microservicios. Gracias por comentar.
Porque elegiste por ejemplo nodejs para el crm o la web api y Java para productos?
Como siempre, síntesis y calidad en este canal. Felicidades
Hola, gracias por el comentario, no en este caso son solo ejemplos aleatorios de lenguajes, no están colocados intencionalmente.
Los productos, los clientes, los pagos, todo... esta relacionado en algún punto, esto como se resuelve con BD separadas? donde se guardan las relaciones? las BD estarán en la misma infraestructura física?, si es así esto como "mejora" con respecto a tener una sola base de datos ? , que pasa con la transaccionalidad?, se puede evitar duplicar información en las BD por motivos de optimizacion en busquedas?
Hola Ale, que tal estás ? Ese es el reto y el costo de ganar en escalabilidad, los datos se duplican y van a cada servicio los que el servicio necesita, hay que implementar mecanismo de consistencia eventual y dejar de pensar en que una sola base de datos es la fuente de la verdad. Es difícil, pero es la única forma de ser escalables. Hay que implementar acciones compensatorias, sagas. Es duro, pero así son los microservicios y es la única vía de escalar "sin límites". Saludos
Hola muchas gracias por tus videos....solo tenía una duda..para hacer consultas cruzadas joins de tablas ubicadas en distintas base de datos (distintos vps) entiendo que se aplica un API Composer..tendrás más info sobre ello?? O quizas otra estrategia...muchas gracias.
Hola Diego, eso que quieres hacer no es ni performante ni desde el punto de vista de diseño escalable. La solución está en cada servicio tenga los datos que necesita para operar aunque estos se repitan en cada base de datos, una vez tengas esto el reto es mantener la consistencia de los datos, ahí puedes aplicar alguna estrategia de EDA. Por otro lado si deseas usar alguna estrategia de composición como la que comentas puedes usar la solución apollo de Spotify. Saludos, gracias por comentar.
Gracias!!!
Excelente explicación, tengo una duda, voy a usar este ejemplo: Tengo un microservicio con su propia base de datos que se encarga de gestionar usuarios, y tengo otro microservicio que se encarga de gestionar artículos también con su propia base de datos, cada articulo esta asociado a un usuario, dicho esto, necesito mostrar en el sitio web una lista con todos los artículos y los datos de contacto de su creador. Tendría que hacer un request para traer todos los artículos, y luego otro request por cada articulo para obtener los datos del usuario? Y si tengo 1000 artículos, serian 1000 request para obtener los datos del creador de dicho articulo?
Espero se entienda mi pregunta y espero puedas darme una idea para resolver este asunto.
Gracias, saludos desde Nicaragua.
Hola Damian, estaría mal si hacemos esto. Lo ideal sería que en el momento de crear un producto ya guardar junto con el producto la información del usuario creador del mismo (no toda), solo la necesitas usar según el negocio. La idea detrás de esto es evitar ese sin número de llamadas. Tienes que tener en cuenta que cuando cambie la información de un usuario ese cambio debes propagarlo (en un bus de mensajes) y actualizar los datos del usuario relacionado en la base de productos para que el sistema quede consistente. Espero hayas entendido, ando preparando un curso de este tema con algunos ejemplos. Pero dime si te queda duda. Buen fin de semana.
@@SACAViXTech Muchas gracias por la información, lo he entendido perfectamente. Seria muy bueno que en tu curso agregues ejemplos de como manejar los distintos tipos de relaciones en un entorno de microservicios. Saludos.