Descomplicando CQRS

Поделиться
HTML-код
  • Опубликовано: 28 янв 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

  • @DouglasGolino
    @DouglasGolino 2 года назад +1

    Simples e direto. Parabéns 👏👏👏

  • @rodcorporation
    @rodcorporation 4 года назад +35

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

  • @BrennoLeal
    @BrennoLeal 6 месяцев назад

    Continua sendo a melhor explicação que vi!

  • @yamclaro4838
    @yamclaro4838 2 года назад

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

  • @charlesworkspace7101
    @charlesworkspace7101 2 года назад

    Parabéns, excelente didática.

  • @rodolfonat
    @rodolfonat 4 года назад +2

    Mandei pro grupo do trabalho. rsrs

  • @anthonybraga8886
    @anthonybraga8886 3 года назад +1

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

  • @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

  • @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!

  • @joao.megale
    @joao.megale 3 месяца назад

    Excellent !!

  • @ricksonthompson
    @ricksonthompson 3 года назад

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

  • @leandroalvesc
    @leandroalvesc 8 месяцев назад

    Ótimo conteúdo!

  • @DastanOficial
    @DastanOficial 4 года назад +2

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

  • @focomarcioassuncao
    @focomarcioassuncao Год назад

    Parabéns pela explicação!

  • @danjovis
    @danjovis 3 года назад

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

  • @lucasltv
    @lucasltv 2 года назад

    Simples e objetivo, obrigado!

  • @MrJefferson22blu
    @MrJefferson22blu 4 года назад +1

    Parabéns pelo conteúdo!

  • @phx.rafael
    @phx.rafael 2 года назад

    Obrigado pelo conteúdo, me ajudou bastante.

  • @brunoleite2122
    @brunoleite2122 4 года назад

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

  • @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
    .

  • @GilbertoMadeira83
    @GilbertoMadeira83 4 года назад +1

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

  • @Eduardoxlord
    @Eduardoxlord 2 года назад +1

    Que didática e explicação incrível...
    Em nenhum momento fiquei disperso ou perdi a atenção. 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.

  • @sauloregis6757
    @sauloregis6757 11 месяцев назад

    Excelente explicação! Parabéns!

  • @victorantunes1049
    @victorantunes1049 4 года назад +2

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

  • @ricardomianelli
    @ricardomianelli 4 года назад +1

    Que aula sensacional!

  • @erickmaia
    @erickmaia 3 года назад

    Excelente explicação.

  • @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.

  • @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 RUclips. Continue, Elemar, por favor!

  • @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.

  • @manobradigital8581
    @manobradigital8581 4 года назад +1

    Excelente! obrigado.

  • @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.

  • @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.

  • @ddnasc
    @ddnasc 4 года назад +1

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

  • @victorpinasarnault9135
    @victorpinasarnault9135 4 года назад +5

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

  • @emersonstori
    @emersonstori Год назад

    Show...

  • @fernando.pinheiro
    @fernando.pinheiro 3 года назад

    Rapaz como e bom seu canal. Show

    • @EximiaCo
      @EximiaCo  3 года назад

      Obrigado pelo elogio!!!

  • @Anselmme
    @Anselmme 3 года назад

    Melhor explicação Elemar. Obrigado!!

  • @felipeoriani
    @felipeoriani 4 года назад +1

    Muito bom Elemar!

  • @luizlopes881
    @luizlopes881 4 года назад +1

    Sensacional, muito bem explicado, aula nota 1000000

  • @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.

  • @daltroedu
    @daltroedu 3 года назад

    Que didática excepcional!

  • @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. =)

  • @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 RUclips haha.

    • @venomtotal
      @venomtotal 4 года назад

      Seria este? ruclips.net/video/lBr1DCfM90U/видео.html

  • @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!

  • @jeffersonferreira43
    @jeffersonferreira43 4 года назад +1

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

  • @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

  • @CarlosHP600
    @CarlosHP600 4 года назад +1

    Sensacional, como todo conteúdo do Elemar.

  • @eliasnepomuceno2475
    @eliasnepomuceno2475 2 года назад

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

  • @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

  • @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.

  • @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.

  • @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.

  • @jefersonspencer
    @jefersonspencer 4 года назад +2

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

  • @caiofischersantana805
    @caiofischersantana805 3 года назад

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

  • @venomtotal
    @venomtotal 4 года назад +2

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

  • @gabrielmartins3510
    @gabrielmartins3510 4 года назад +1

    Excelente conteúdo

  • @rodrigoojapa
    @rodrigoojapa 4 года назад +2

    òtima 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.

  • @ThiagoBenine
    @ThiagoBenine 4 года назад

    Excelente explicação!

  • @cestarop
    @cestarop 3 года назад

    Excelente explicacã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

  • @kelvearagao6635
    @kelvearagao6635 3 года назад

    Muito bem explicado! Parabéns!

  • @LucasLopesbadv8
    @LucasLopesbadv8 4 года назад +1

    Ótima explicação!

  • @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. :)
      ruclips.net/video/f4GolIiNIvc/видео.html

  • @b92c
    @b92c 3 года назад

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

  • @newbee1816
    @newbee1816 4 года назад +3

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

  • @vanessaancken3756
    @vanessaancken3756 Год назад

    👏👏👏👏

  • @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é?

  • @victorpinasarnault9135
    @victorpinasarnault9135 4 года назад +1

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

  • @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.

  • @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

  • @rockerhistory
    @rockerhistory Год назад

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

  • @carlosl8832
    @carlosl8832 4 года назад +1

    👍🏼

  • @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?

  • @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...

  • @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".
    ruclips.net/video/JHGkaShoyNs/видео.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!

  • @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

  • @Darshimir
    @Darshimir 2 года назад

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