No video

El patrón CQRS en la arquitectura microservicios |

  Рет қаралды 9,118

SACAViX Tech

SACAViX Tech

Жыл бұрын

CQRS son las siglas de Command Query Responsibility Segregation o Separación de las responsabilidades de comandos y consultas.
Es un patrón de diseño que favorece la separación de la lógica de escritura en una aplicación de su lógica de lectura. Permitiendo escalar las necesidades de escritura y lectura de forma independiente.
✅ Aprende más en nuestro blog: sacavix.com/
✅ Apóyanos en Patreon: / sacavix_tech
(Con tu apoyo en Patreon accedes a ventajas exclusivas como directos, preguntas y respuestas en el chat, respuestas a tus dudas y acceso a nuestro libro "Patrones para la implementación de una arquitectura basada en microservicios".
CQRS tiene retos importantes en su implementación y diferentes variantes. En este video aprenderás:
¿Qué es CQRS ?
¿Por que surge CQRS ?
Ventajas de usar CQRS.
Variantes posibles de CQRS.
Recomendaciones para implementar CQRS.
Dificultades y problemas de implementar CQRS
Ejemplo en Java y Spring Boot de CQRS.
Espero te guste el video.
#cqrs #microservicios #distributed #microservices #patterns

Пікірлер: 16
@arceliomontezuma3458
@arceliomontezuma3458 Жыл бұрын
Espero un dia tener tanto conocimiento, gracias por toda la informacion
@ricardotilleriaochoa5674
@ricardotilleriaochoa5674 Жыл бұрын
Excelente explicación, gracias por compartir la información
@jordanalbano5191
@jordanalbano5191 20 күн бұрын
Buenisimo!. pero me quedo una duda, si bien decis que no devuelven informacion, si uso un controller, y este retorna un codigo de estado al frontend, este codigo de estado si se podria enviar? Cuando decis que no devuelve informacion te referis a la informacion de la entidad? Saludos .
@franciscoespinosagonzales2331
@franciscoespinosagonzales2331 Жыл бұрын
Bueno este video... saludos de Montevideo... jj
@SACAViXTech
@SACAViXTech Жыл бұрын
Muchas gracias! 😊
@miiid._.
@miiid._. Жыл бұрын
Gracias por tu contenido y aportación a la comunidad! Tengo unas dudas, espero alguien me pueda orientar de favor. Hablando de microservicios (comunicación vía mensajes, EDA, CQRS, database per service…), teniendo por ejemplo un servicio de pagos y uno de usuarios ¿Cómo podría hacer una query del sistema de pagos al de usuarios para validar que un user está mandado dinero a otro user existente? No sé si sea buena idea comunicarnos con rest por temas de disponibilidad, ya que afectaría a la integridad de datos si utilizáramos patrones de resiliencia para dar una respuesta alternativa cuando un sistema no se encuentra disponible (¿Tendría que reencolar el mensaje de nuevo en mi sistema de mensajería hasta que el servicio donde mando la solicitud de obtención de datos esté disponible? ). Lo que se me ocurría era publicar un evento al registrar un user para que el sistema de pagos lo capture y lo tenga en su propia base de datos (lo cual nos lleva a mucha duplicidad de data a futuro), el tema de esto es que si el día de mañana quiero desarrollar otro servicio que tenga la misma información que el de usuarios, sería un problema ya estando en producción si estos sistemas tienen una alta demanda de tráfico aun haciendo replay de todos los eventos del event store. De igual forma pensaba que si el sistema de usuarios agregara nuevos campos que requirieran los demás sistemas ¿Cómo se igualaría esa información? La otra duda sería en caso de que esto que digo sea válido ¿Siempre deberíamos de replicar toda la data de un servicio a otro (por ejemplo en este caso replicar toda la información de un usuario en la base de datos de pagos)? A pesar de que esto es agnóstico a lenguajes o tecnologías, yo que estoy más acostumbrado a Java tengo entendido que esto sería más sencillo (por decirlo de algún modo) con herramientas o Frameworks como lo es Axon, el tema de esto es que cuando tienes tus servicios distribuidos en distintos servidores esto se vuelve de paga, a pesar de que ensuciaría mi dominio siendo referente a DDD y clean arquitectures.
@alejandrosantana4259
@alejandrosantana4259 Жыл бұрын
que alegria encontrarme un cubano explicando estos temas, por fin puedo abandonar los tutoriales indios 😂. Muy buen video.
@SACAViXTech
@SACAViXTech Жыл бұрын
Abrazo brother
@marcoantonioencisosalinas6437
@marcoantonioencisosalinas6437 Жыл бұрын
Como se manejan las excepciones usando este patron, es decir que pasa si falla el command al crear la operacion de escritura, como se manejan esas excepciones. Gracias
@hanya201087
@hanya201087 Жыл бұрын
excelente como siempre, me puedes orientar donde puedo conseguir buena información y material, con ejemplos prácticos sobre el patrón saga , compensaciones en sistemas distribuidos o microservicios. gracias por el vídeo.
@SACAViXTech
@SACAViXTech Жыл бұрын
Hola Ali, en realidad encontrar todo en solo sitio esta difícil a veces de encontrar, pero pronto haremos algo sobre SAGAs. Ahora casualmente esta semana saco en la serie "Aprende los conceptos" el concepto de "Acción compensatoria" y "Transaccion distribuida", porque ando en ese camino justo, preparando el publico para entrar luego en SAGA :-)
@hanya201087
@hanya201087 Жыл бұрын
@@SACAViXTech perfecto estaré pendiente.
@UnDevMas
@UnDevMas 5 ай бұрын
Hola, sabes porque se usa AXON y todoe ste tema podria implementar CQRS sin necesidad de usar AXON ?
@SACAViXTech
@SACAViXTech 5 ай бұрын
Hola, si es posible sin AXON, la ventaja de AXON es que integra tecnologías para hacerlo fácil, pero no es requerido, usando un bus de mensaje como Kafka, Rabbit, SQS u otro puedes implementarlo.
@UnDevMas
@UnDevMas 5 ай бұрын
Quiero hacer eso sin usar Axon, y usare weblux, lo que tengo pensado es esto: creare 2 bus 1 para los commands y 1 para los DomainEvents, la idea es que el bus de commands reparta estos eventos para los manejadores especificos, segun la clase o el tipo de comando , pero lo que no entiendo es donde haria esto, en el command handle hago como el publish a mi event bus y ya retorna como un Ok qya que sera asincrono?m y ya leugo en el listener es donde llamo a la bd? esto seria correcto?, y para actualizar la BD desde ese listener del command hago un publish cuando se guarde el regfistro de la bd como un domainEvent, para actualizar con la info de la bd de lectura enviando a un rabbit o kafka o algo pro el estilo ? ? ,o esto seria incorrecto ? @@SACAViXTech
@UnDevMas
@UnDevMas 5 ай бұрын
Otra duda, crees que sea necesario usar un bus para manejar los commands usando webflux y arquitectura hexagonal?, porque yo no le veo mucho sentido porque 1. las operaciones con webflux ya son asyncronas, 2. ya encabsula la logica de negocio en el dominio , entonces tengo la duda es realmente valdria la pena poner un bus de commands para manejar estas operaciones de insercion o podria simplemente separar los query de los command y no violaria el patron CQRS? para este caso con webflux y arch hexagonal? @@SACAViXTech
Arquitectura Limpia: Un ejemplo práctico con Spring Boot
41:21
SACAViX Tech
Рет қаралды 40 М.
Patrones fundamentales de la arquitectura microservicios
23:57
SACAViX Tech
Рет қаралды 11 М.
Smart Sigma Kid #funny #sigma #memes
00:26
CRAZY GREAPA
Рет қаралды 6 МЛН
ОБЯЗАТЕЛЬНО СОВЕРШАЙТЕ ДОБРО!❤❤❤
00:45
MISS CIRCLE STUDENTS BULLY ME!
00:12
Andreas Eskander
Рет қаралды 20 МЛН
DDD y CQRS: Preguntas Frecuentes
20:49
CodelyTV - Redescubre la programación
Рет қаралды 26 М.
Parámetros por valor o referencia
0:54
SACAViX Tech
Рет қаралды 1,1 М.
Diferencias entre interfaz y clase abstracta en Java
0:50
SACAViX Tech
Рет қаралды 3,7 М.
Patrón CQRS explicado FÁCIL en 10 minutos
19:52
NetMentor
Рет қаралды 23 М.
Cambio de contexto
0:31
SACAViX Tech
Рет қаралды 1,2 М.
Condición de carrera en la programación
0:46
SACAViX Tech
Рет қаралды 1 М.
Smart Sigma Kid #funny #sigma #memes
00:26
CRAZY GREAPA
Рет қаралды 6 МЛН