Descomplicando CQRS

Поділитися
Вставка
  • Опубліковано 30 січ 2025

КОМЕНТАРІ • 95

  • @joaodacruz333-b7d
    @joaodacruz333-b7d Рік тому +3

    Que explicação incrivel e rica em detalhes, muito obrigado.

  • @R03101985
    @R03101985 3 роки тому +6

    Melhor explicação que vi até agora.

  • @champion6929
    @champion6929 3 роки тому +4

    Aleluia!! Consegui entender!! Só pra esclacerer, a camada de consulta(query) pode ser um cash que armazena o estado atual do banco de dados. Quando o banco de dados sofre uma alteração através da camada de comando(command), um evento é lançado com destino à camada de consulta, que é atualizado com os novos dados enviados da camada command. Por isso event sourcing e cqrs tem uma forte ligação!! Me corrijam se eu estiver errado

  • @rodcorporation
    @rodcorporation 4 роки тому +35

    Explicação melhor que essa, nunca vi! Parabéns Elemar! Cada conteúdo que nossa senhora.

  • @yamclaro4838
    @yamclaro4838 2 роки тому

    Ótimo vídeo, desvendou em pouco tempo o que eu demorei meses para aprender, parabéns Elemar!

  • @anthonybraga8886
    @anthonybraga8886 3 роки тому +1

    Gostei muito. Foi bem for Dummies mesmo...e pra mim isso é excencial

  • @DouglasGolino
    @DouglasGolino 2 роки тому +1

    Simples e direto. Parabéns 👏👏👏

  • @Trutas4ever
    @Trutas4ever 2 роки тому

    Não sou de ficar comentando nos vídeos, mas a didática e material que você utilizou para explicar o conceito foi sensacional. Parabéns mesmo

  • @BrennoLeal
    @BrennoLeal 6 місяців тому

    Continua sendo a melhor explicação que vi!

  • @charlesworkspace7101
    @charlesworkspace7101 2 роки тому

    Parabéns, excelente didática.

  • @tarilonte
    @tarilonte 6 місяців тому

    Eu sempre vejo qual a relação custo benefício de implementar qualquer princípio, pois todo princípio possui situações de exceção.
    Por exemplo, em um método save() que persiste uma nova instância de uma Entidade, parece fazer sentido que o método retorne o ID da entidade criada.

  • @LucianoCoelhoAlves
    @LucianoCoelhoAlves Рік тому

    Excelente explicação, parabéns!
    Então se a CQRS pode nos ajudar nisso, só que isso aumenta muito a complexidade de um sistema. Precisamos ter cuidado de quando implementar. E até pela grande complexidade na separação de modelo de escrita e leitura.

  • @leandrostoneshop
    @leandrostoneshop 4 роки тому +1

    Esse lance com repositórios somente para comandos e queries eu esbarrei na prática. Realmente fica muito mais claro e evita que o repositório fique com funções desconexas
    .

  • @ricksonthompson
    @ricksonthompson 3 роки тому

    Muito boa a explicação! Obrigado pelo vídeo.

  • @midnightturtle
    @midnightturtle 4 роки тому

    Em 13:10 CQRS talvez não exista sem Event Sourcing qdo se utiliza bancos de dados segregados para commands e queries, ja qdo se utiliza um unico bd acho q pode existir sem event sourcing

  • @mandynis
    @mandynis 3 роки тому +1

    Excelente, didática muito boa. Eu sou iniciante e consegui compreender tranquilamente, achei show!

    • @EximiaCo
      @EximiaCo  3 роки тому

      Obrigado e bons estudos!

  • @rgelonezi
    @rgelonezi 3 роки тому

    Eu tive que pausar o vídeo no meio para pegar pedaços do meu cérebro que explodiu no teto.
    Excelente apresentação de conteúdo! Estou boquiaberto com as possibilidades.

  • @phx.rafael
    @phx.rafael 2 роки тому

    Obrigado pelo conteúdo, me ajudou bastante.

  • @focomarcioassuncao
    @focomarcioassuncao Рік тому

    Parabéns pela explicação!

  • @Eduardoxlord
    @Eduardoxlord 2 роки тому +1

    Que didática e explicação incrível...
    Em nenhum momento fiquei disperso ou perdi a atenção. Parabéns!

  • @leandroalvesc
    @leandroalvesc 8 місяців тому

    Ótimo conteúdo!

  • @lucasltv
    @lucasltv 2 роки тому

    Simples e objetivo, obrigado!

  • @danjovis
    @danjovis 3 роки тому

    Explicação de alto nível, gosto muito de seus videos e recomendo muito.

  • @longuinni
    @longuinni 4 роки тому +12

    Muito bom!! Conheci pela última live do Branas!! Sensacional Elemar, muito obrigado por compartilhar todo esse conhecimento.

    • @ermersonrafael
      @ermersonrafael 4 роки тому +1

      Sensacional, acompanho desde a palestra da qcon sobre rust. Depois disso me apaixonei por esse tipo de conteúdo e didática.

  • @rodolfonat
    @rodolfonat 4 роки тому +2

    Mandei pro grupo do trabalho. rsrs

  • @joao.megale
    @joao.megale 3 місяці тому

    Excellent !!

  • @GilbertoMadeira83
    @GilbertoMadeira83 4 роки тому +1

    gostei muito da explicação, objetiva sem ser superficial, e sem ser verboso demais tbm, parabéns!

  • @allanwesley843
    @allanwesley843 3 роки тому +1

    MDS vey que explicação foda, sou QA e estou estudando mais sobre arquitetura e até pouco tempo atrás não fazia ideia do que era CQRS mas consegui entender o macro do que é, parabéns pela didática.

  • @MrJefferson22blu
    @MrJefferson22blu 4 роки тому +1

    Parabéns pelo conteúdo!

  • @DastanOficial
    @DastanOficial 4 роки тому +2

    Muito bom mesmo!! Eu gostei bastante da explicação. Elemar Jr é brabo demais!

  • @victorpinasarnault9135
    @victorpinasarnault9135 4 роки тому +5

    Like 43º.
    Ótimo te conhecer do canal do Rodrigo Branas.

  • @ClimacoMe
    @ClimacoMe 4 роки тому +1

    Gostei da explicação, ao final você menciona que o Greg Young é o descobridor do CQRS, de fato. Porém também concordo com você quando menciona que podem ocorrer seus 'mixes' entre os conceitos para adaptar-se a SEUS projetos.

  • @diogenesdirkx
    @diogenesdirkx 3 роки тому

    Tendo um banco de escrita e um de leitura, dá pra escalar os de leitura com N maquinas para leitura, sincronia seria unidirecional.

  • @brunoleite2122
    @brunoleite2122 4 роки тому

    Gratidão Elemar. Simples, direto e sem complicações.

  • @erickmaia
    @erickmaia 3 роки тому

    Excelente explicação.

  • @victorantunes1049
    @victorantunes1049 4 роки тому +2

    Explicado de forma muito simples e em um vídeo curto! Conteúdo muito bom!

  • @LeonardoDias-te2gg
    @LeonardoDias-te2gg 4 роки тому +3

    Uma das melhores palestras que já vi sobre CQRS é uma que o próprio Elemar fez, em um evento, em 2012. Se procurarem bem devem achar nas profundezas do UA-cam haha.

    • @venomtotal
      @venomtotal 4 роки тому

      Seria este? ua-cam.com/video/lBr1DCfM90U/v-deo.html

  • @tirodev
    @tirodev 4 роки тому +4

    Quem bom que agora temos alguém que nos faz pensar mais criticamente sobre desenvolvimento e arquitetura de software profissionalmente, no UA-cam. Continue, Elemar, por favor!

  • @manobradigital8581
    @manobradigital8581 4 роки тому +1

    Excelente! obrigado.

  • @RoadtoAgility
    @RoadtoAgility 4 роки тому +2

    Olá Elemar, muito legal você ter tocado no pontos da sincronização e a relacionação com os caches. Ótimo video, simples e objetivo.

  • @emersonstori
    @emersonstori Рік тому

    Show...

  • @felipeoriani
    @felipeoriani 4 роки тому +1

    Muito bom Elemar!

  • @ddnasc
    @ddnasc 4 роки тому +1

    Olha o nível de clareza e didática... sensacional.

  • @sauloregis6757
    @sauloregis6757 11 місяців тому

    Excelente explicação! Parabéns!

  • @daltroedu
    @daltroedu 3 роки тому

    Que didática excepcional!

  • @thiagobarbieri1
    @thiagobarbieri1 4 роки тому +5

    Excelente explicação sobre CQRS! Agora fiquei muito interessado na parte de separação de banco de dados (um para comandos outro para consultas), daria uma discussão interessante sobre: como projetar um modelo ideal para sincronização dos bancos de dados.

    • @caiocutrim3596
      @caiocutrim3596 4 роки тому

      acho que server até pra um TCC hehehe

  • @ricardomianelli
    @ricardomianelli 4 роки тому +1

    Que aula sensacional!

  • @Altamirdias
    @Altamirdias 4 роки тому +1

    Elemar Jr, obrigado por compartilhar seu conhecimento. Toda a comunidade deve te agradecer muito, certamente(Peguei emprestado de suas frases) você se dedica muito para manter sua base de conhecimento e nos entregar isso tudo "de graça". Alias a qualidade do seu vídeo combinando o fundo com a camisa Polo está perfeito. =)

  • @Anselmme
    @Anselmme 3 роки тому

    Melhor explicação Elemar. Obrigado!!

  • @AlexandreG50
    @AlexandreG50 4 роки тому +2

    Parabéns Elemar, você tem uma capacidade de transferir idéias e conhecimento de uma maneira muito fluida e de fácil entendimento. Obrigado por dividir.

  • @ConsoleHelloWorld
    @ConsoleHelloWorld 3 роки тому

    Cara!!! Meu!!! essa explicação foi direto ao ponto! É muito raro encontrar um conteúdo tão top como este. Muito obrigado!

  • @fernando.pinheiro
    @fernando.pinheiro 3 роки тому

    Rapaz como e bom seu canal. Show

    • @EximiaCo
      @EximiaCo  3 роки тому

      Obrigado pelo elogio!!!

  • @luizlopes881
    @luizlopes881 4 роки тому +1

    Sensacional, muito bem explicado, aula nota 1000000

  • @rodrigoojapa
    @rodrigoojapa 4 роки тому +2

    òtima explicação

  • @venomtotal
    @venomtotal 4 роки тому +2

    Elemar, estou adorando seus vídeos sobre arquitetura, por favor, continue com este ótimo trabalho

  • @eliasnepomuceno2475
    @eliasnepomuceno2475 2 роки тому

    Que didática incrível. Não conheci o canal, parabéns pelo conteúdo!

  • @jeffersonferreira43
    @jeffersonferreira43 4 роки тому +1

    A inscrição no canal já se pagou neste vídeo, que explicação.

  • @jefersonspencer
    @jefersonspencer 4 роки тому +2

    Conteúdo de alta qualidade! Ótima e muito didática explicação.

  • @kildersonsena8873
    @kildersonsena8873 3 роки тому +5

    Muito obrigado por esse conteúdo riquíssimo, você está conseguindo abrir muito a minha mente com seus vídeos. Eu tenho uma dúvida aqui.
    No minuto 10:42 você disse que Repositories são artefatos de domínio, logo, eles seriam serviriam somente para Command Stack. Queria saber no caso como funcionaria uma consulta, por exemplo, na Query Stack sem passar por um repositorio. Que outro artefato utilizariamos?
    Um forte abraço e obrigado pelo conteúdo.

  • @CarlosHP600
    @CarlosHP600 4 роки тому +1

    Sensacional, como todo conteúdo do Elemar.

  • @gabrielmartins3510
    @gabrielmartins3510 4 роки тому +1

    Excelente conteúdo

  • @rockerhistory
    @rockerhistory Рік тому

    Frequentemente há comandos que necessitam de queries para serem validados. Num único "serviço"

  • @LucasLopesbadv8
    @LucasLopesbadv8 4 роки тому +1

    Ótima explicação!

  • @matheussetembro
    @matheussetembro 4 роки тому +1

    Cara, seu canal está sensacional, parabéns pelo conteúdo e por transmitir esse conhecimento, minha equipe inteira está te acompanhando

  • @ThiagoBenine
    @ThiagoBenine 4 роки тому

    Excelente explicação!

  • @kelvearagao6635
    @kelvearagao6635 3 роки тому

    Muito bem explicado! Parabéns!

  • @cestarop
    @cestarop 3 роки тому

    Excelente explicacão!!!

  • @caiofischersantana805
    @caiofischersantana805 3 роки тому

    Excelente didática Elemar. Parabéns pelo excelente trabalho!!!

  • @alessandrodesouza
    @alessandrodesouza 4 роки тому +1

    Abriu minha mente ainda mais. Eu até uso CQRS porém, para uma consulta a um "Cliente" por exemplo, eu recorro ao repositório. Melhor separar né?

  • @b92c
    @b92c 3 роки тому

    Que conteúdo rico e que didática incrível. Muito obrigado por compartilhar o conhecimento!

  • @lucascruz05
    @lucascruz05 4 роки тому +2

    Vídeo chegou em boa hora. Primeira vez que ouvir em falar sobre o assunto foi na live do Branas com sua participação, daí comecei a estudar sobre os tópicos que não conhecia. Você pretende gravar um vídeo falando sobre event sourcing ?

    • @EximiaCo
      @EximiaCo  4 роки тому +1

      Seu desejo é uma ordem. :)
      ua-cam.com/video/f4GolIiNIvc/v-deo.html

  • @victorpinasarnault9135
    @victorpinasarnault9135 4 роки тому +1

    Já vi esse padrão implementado em JavaScript e SGBD Redis, interessante.

  • @newbee1816
    @newbee1816 4 роки тому +3

    Elemar, obrigado por compartilhar !
    Indicaria algum material complementar para aprofundar no assunto ?

  • @midnightturtle
    @midnightturtle 4 роки тому

    Duvida : Imagina um cenario que vc tem um sistema de seguros que ao passar informações do motorista, veiculos e outras informações a mais, o metodo EfetuarCotacao de uma determinada API é chamado.
    1- Internamente serão efetuados alguns commands que executarão serviços de dominio para cadastrar os dados do cliente e os dados da cotação.
    2- Esse metodo fará algumas consultas no banco de dados que servirão de base para fazer o calculo do seguro
    3-Por fim, o seguro será calculado
    Se abaixo da application ja temos commands e queries separados, como fazer esses 3 itens funcionarem juntos uma vez que o calculo do seguro depende dos commands efetuados, das queries realizadas e das regras de calculo?
    Dentro do meu domain service que foi chamado a partir de um command eu poderia chamar um metodo de consulta do meu repositório mesmo sendo uma query?
    Da maneira que foi explicado no video, tenho a impressão que eu não poderia fazer isso, porem acho que fica estranho minha application orquestrar a execução dos commands para gravar informações do cliente, cotação, etc.., depois chamar as queries, e depois chamar novamente um command que irá chamar meu domainservice.efetuarcalculo()

  • @PatrickReinan
    @PatrickReinan 4 роки тому +2

    Conceitualmente o CQRS é isso mesmo. O desafio é grande quando se pensa em duas bases de dados diferentes (as vezes usando tecnologias diferentes). Como o Elemar disse, não é um requisito obrigatório, mas em alguns cenários pode trazer bons ganhos de performance.
    Quanto ao Event Sourcing eu concordo com o Elemar. CQRS pode ser usando independente de Event Sourcing, que é um padrão muito interessante porém super complexo.

  • @vanessaancken3756
    @vanessaancken3756 Рік тому

    👏👏👏👏

  • @renandexterp1
    @renandexterp1 4 роки тому +2

    Fiquei pensativo sobre o que você falou sobre requisições http,
    já tive casos que por exemplo, na hora de registrar(post) um pedido de compra, a aplicação retorna um boleto.
    Para não ficar transitando várias vezes na rede, o mesmo endpoint tanto realiza o registro do pedido, como realiza um retorno(get), de um boleto, código de barras, enfim e as vezes até registra em uma fila o envio de um e-mail, etc.
    O que você pensa sobre isso?

    • @thiagopires2600
      @thiagopires2600 4 роки тому

      Sei que sua pergunta foi para ele. Porém quero opinar. Acho que o ideal seria você implementar esse processo em uma fila, avisando o usuário que o processo será realizado em segundo plano, ao ser finalizado você envia uma notificação para ele, pode até mesmo ser enviado o link para que ele já possa visualizar o boleto.
      Dessa forma você consegue escalar, desacoplar e talvez até poupar com recursos de máquinas

  • @caiocutrim3596
    @caiocutrim3596 4 роки тому

    gostei muito

  • @alexaugusto5935
    @alexaugusto5935 Рік тому

    Olá gostei muito da aula, mas até onde entendi após diversas pesquisas é que o CQRS não necessariamente depende de um message bus, uma fila ou algo semelhante. Estou certo?

  • @carlosl8832
    @carlosl8832 4 роки тому +1

    👍🏼

  • @eduoliveira1983
    @eduoliveira1983 4 роки тому +7

    Ah Elemar, ele pode até ser o cara que criou olho conceito, mas se vc conseguiu usar sem o Event Sourcing em campo, eu aceito...

  • @marcusmartinsleite1891
    @marcusmartinsleite1891 4 роки тому +1

    Bom, fica a questão. O que é que o Elemar faz, que não fica bem feito. Até deixar coisas complexas de entender ficam de forma simples

  • @mariorez
    @mariorez 4 роки тому +3

    Elemar, neste video de 2014 o Greg Young diz: "You can use CQRS without Event Sourcing but with Event Sourcing you must use CQRS".
    ua-cam.com/video/JHGkaShoyNs/v-deo.html&t=60
    Sabe dizer se o Greg mudou de opinião de lá pra cá? Senão vocês tem a mesma visão 👍 🙂
    E parabéns. Seus conteúdos são excelentes e uma referencia pra mim.

    • @EximiaCo
      @EximiaCo  4 роки тому +4

      Devemos gravar com ele em alguns dias. Vamos ver o que ele diz.

    • @wiliam.buzatto
      @wiliam.buzatto 4 роки тому

      @@EximiaCo Que top!

  • @Darshimir
    @Darshimir 2 роки тому

    toma baixovoto e por mendigar inscrição, eu teria me inscrito se n tivesse mendigado.