MICROSSERVIÇOS JAVA COM DDD, CQRS E EVENT SOURCING - PARTE 2

Поделиться
HTML-код
  • Опубликовано: 20 окт 2024

Комментарии • 90

  • @arquitetodasgalaxias
    @arquitetodasgalaxias  4 года назад +6

    Aprenda mais sobre este incrível framework! AxonIQ: axoniq.io/
    Tem alguma sugestão para conteúdo? Manda ai! []´s

  • @paulofelipemonteiro
    @paulofelipemonteiro 4 года назад +12

    Finalmente conteúdo avançado e de qualidade, é muito difícil encontrar material deste tipo. O maior problema as vezes de estudar sozinho e que se seja em um limite pois ou não se acha material ou não sabe o caminho, aqui temos os 2. Muito obrigado.

  • @joseaugusto7839
    @joseaugusto7839 3 года назад +6

    Cara, seu canal tem tudo para ser um dos maiores sobre o assunto.
    muito bom, muito bom mesmo.
    vc está de parabéns!!!

  • @wagner_s_r
    @wagner_s_r 3 года назад +3

    Muito bom, gostaria muito de ver a 3 parte. continua com os vídeos que está top demais! abs

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

    Cara não te conhecia. Mas estou achando muito bom seus vídeos e didática sem enrolação. Parabéns e obrigado pelos ensinamentos.

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

    Parabéns pelo conteúdo e pela didática.

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

    QUE DIDÁTICA F!D@ MANO SHOW PARABÉNS, POR FAVOR FAZ MAIS VÍDEOOS ASSIM

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

    Muito bom o conteúdo, cara! Simples e direto ao ponto. Imagino que seja difícil acompanhar conceitualmente para quem nunca teve contato com event sourcing, mas aí é só volta lá na parte I e procurar alguma leitura ou video auxiliar. Parabéns, ja vou procurar a parte III

  • @McLipinhoTv
    @McLipinhoTv 3 года назад +3

    Quando é careca ou cabelo branco, já sei que é arquiteto ou + kkkkkkkkkk,
    Zoeira, mano, show! Faz a 3ª parte do vídeo, ficou show. Se puder codar ao vivo e explicando também, separa por partes de 20 minutos ou 10 que é bom que vc solta mais conteúdos no canal.

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

      hahaha oba meu querido!
      Muito obrigado! Este ano volto a gravar!
      Abraços!

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

    Rapaz, ficou rápido mesmo kkk, mas deu para entender , muito bom esse conteúdo

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

      Demais né Fernando! Agora estou fazendo lives com o mesmo propósito! Depois acho que vou pegar esse projeto e fazer uma pra cobrir o conteúdo novamente!
      Obrigado pelo feedback!
      Abraços!

  • @0th.academy
    @0th.academy 3 года назад +1

    Mermão a pancada ai foi segura.
    Muito foda o conteúdo.
    Parabéns irmão

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

    Muito bom. Parabéns

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

    Muito massa Lucas, sou minha stack principal é .NET mas fico gostei muito da implementação com kotlin, muito rápido e prático, obrigado pelo conteudo!

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

      Valeu Vinicius! Com o tempo vou tentar abstrair ao máximo a linguagem e quem sabe usar alguma outra também! Obrigado pelo feedback! Abraços!

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

    Muito bom o conteudo hein... bem legal mesmo!! Estou aguardando o video 3!!!

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

    Parabéns conteudo muito bom! Esperando a terceira parte!

  • @wellingtonalves7432
    @wellingtonalves7432 3 года назад +2

    Cadê a parte III? Parabéns pela dinâmica! Kkkkkkk

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

    Muito bom , esclareceu várias dúvidas 🙌

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

    Top das galaxias mas realmente ficou muito rápido. Estou lendo a documentação para entender mais sobre o assunto. Valew pelo conteúdo. Parabéns mesmo !

  • @removed107
    @removed107 3 года назад +2

    Caramba, quanto código! Eu criei uns projeto full stack usando Spring Boot, Angular, MongoDB e já fiquei me achando um arquiteto, após ver esse vídeo eu fiquei assustado..., rsrsrs.
    No começo tu diz que coloca as dependências tudo na mão, eu sempre ia no site "Spring Initializr" ou no eclipse IDE gerar o projeto, agora tô pensando em fazer na mão mesmo pra aprender na prática!
    Parabéns pelo vídeo. Qual é tua profissão? Arquiteto? Senior?! Programa muito!

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

      Não se assuste, com o tempo você pega o jeito. Sou arquiteto e desenvolvedor!
      Abraços e obrigado!

  • @joaopaulos.l.822
    @joaopaulos.l.822 4 года назад

    Cara, muito fera os seus vídeos. Esclareceu várias dúvidas que eu tinha sobre CQRS e Event sourcing. Parabéns pelo o canal.

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

    No aguardo da terceira parte! :D

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

      Eu também! aguardando!

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

      Senhores, obrigado pelas mensagens.
      Correria monstro mas este ano vou voltar a gravar - pretendo separar melhor o conteúdo e apresentar tudo com mais calma e detalhamento.
      Abraços e obrigado!

  • @luanpersini
    @luanpersini Год назад +1

    Você explicou bem na primeira parte. Infelizmente na segunda parte foi muito corrido, um pouco mais lento na apresentação e uma imagem mostrando o fluxo da requisição e os eventos disparados deixariam o video nota 10.
    De toda forma obrigado pelo conhecimento transmitido!

    • @arquitetodasgalaxias
      @arquitetodasgalaxias  Год назад +1

      Verdade!!!! To sempre tentando melhorar.
      Recentemente gravei outros vídeos implementando em live. A parte de edição é muito complicada, toma tempo demais. Mas tmj mano muito obrigado pelo seu feedback! Logo deve sair mais.
      []'s

  • @darioteodoro8254
    @darioteodoro8254 2 года назад +2

    Muito bom o conteúdo, o youtube tá carente de videos com assuntos mais avançados. Parabéns!
    Gostei da dinâmica de comentar o video gravado, mas seria interessante se você conseguisse parar a execução do video para explicar melhor sobre suas decisões.

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

      Fala Dário! Muito obrigado pelo feedback!
      Agora pretendo fazer lives para esse tipo de implementação! Vamos ver como vai ser!
      Abraçøs!

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

    Opa, voltei pra fazer mais uma perguntinha hehe e agradecer mais uma vez pelo conteúdo. Já estou acompanhando as lives.
    Uma dúvida que tenho é sobre futuras Projections no sistema, por exemplo, caso surja uma nova projection, será necessário varrer todo o banco de eventos para que tenha dados históricos ? Como que funciona isso ?

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

      Fala Dário, tudo certo?
      Muito obrigado por acompanhar! Existe um mecanismo dentro do Axon para replay de eventos. Poderíamos configurar só para as novas projections, por exemplo, mas para o primeiro build ou uma migração por exemplo o ideal é rodar o replay.
      []'s

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

    Não encontrei as outras partes ..., encerrou as gravações ? ... é uma pena, o conteúdo é muito bom.

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

      Retomei, vou dar uma olhada. oque pode ser continuado nessa série ok?
      Abraços!

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

    Cara o seu conteúdo está muito bom, faz um novo vídeo com RabbitMQ e Axon, estou desenvolvendo uma aplicação por ai, se quiser trocar uma ideia.

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

    Muito bom!!

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

    O lance do tempo curto é bom porque alguém que quer achar uma informação rapidinho consegue achar.
    Uma pessoa que queira acompanhar devagar pode tirar o áudio e colocar o youtube em 0,5x. Vê o pedaço com detalhe e depois volta a velocidade normal. Acho bem de boa.

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

      Boa mestre! To estudando o formato, vamos ver como vai ficando! Obrigado pelo help!

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

    Vai maninho!
    Manda ver por aí e se diverte no processo.

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

    Boa noite meu amigo, parabéns pelo vídeo. Uma dúvida, para cruds básicos (complementares), que não fazem parte do core businesse (domínio), você deixa fora dos aggregates dos commands? Ou você cria um command para cada tipo de update? Exemplo, um patch que altera parâmetros opcionais de uma model. Obrigado e mais uma vez parabéns e obrigado!

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

      Fala Lucas, boa noite!!! Muito obrigado pelo feedback!
      Não sei se entendi direito a sua dúvida mas vou tentar responder. Tudo o que é persistido tem que ficar dentro de um agregado, seja ele de um core domain ou um sub domain. Pensando em DDD e ES a gente evita falar em CRUD pq normalmente nos leva a pensar em um modelo anêmico.
      O que você precisa pensar caso essa parte "básica" é que se ela não for core domain, provavelmente não compense você utilizar eventos ou esquemas de agregados. Muitas vezes um simples MVC resolve.
      Eventos normalmente representam 20% do software, somente.
      Tu chegou a ver o vídeo que coloquei sobre o assunto?
      Qualquer coisa continuamos a conversa aqui blz?
      Abraços!!!

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

      @@arquitetodasgalaxias muito obrigado pela resposta cara. Eu vi sim, inclusive usei o vídeo do Event Storming como referência para fazer um workshop aqui na empresa e foi bastante produtivo, obrigado por isso! Sobre o crud que comentei, você respondeu minha dúvida. O core business é um ERP, que cadastra produtos, clientes, OS, contas a pagar e contas a receber, etc. Falando do core, o domínio que importa é um fluxo complexo de ordem de compras onde o setor de compras irá iniciar o processo, depois passar pelo financeiro, aprovar/recusar, etc... A dúvida era se vale a pena usar DDD para o cadastro de uma categoria de produto, por exemplo, pois é um crud totalmente acessório, não será essencial para o domínio principal da aplicação. Nesses casos vou manter o bom e velho MVC para esses cadastros auxiliares e aplicar DDD nos eventos importantes do sistema, simples é mais rs. Obrigado meu amigo! Que Deus retribua sua colaboração para com a comunidade DEV, tmj.

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

      @@lucasltv TOPPPPP demais!!!! Precisando só pingar!!!
      []'s

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

    Excelente vídeo, parabéns! Java não é minha stack principal, mas vejo muita gente falando sobre o Axon e estou dando uma pesquisada sobre. Uma coisa que fiquei em dúvida: caso eu tenha uma ambiente com serviços em Java e também em outras linguagens, ainda assim seria possível utilizar o Axon? Caso não, isso não quebraria um pouco uma das principais vantagens sobre usar arquitetura em microserviços? Grande abraço.

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

      Fala Thiago, tudo bem? Desculpa pela demora na resposta, estava fora mas agora to voltando. Normalmente aplicamos event sourcing em 20% do nosso sistema (o core domain). Os outros 80 poderiam ser serviços escritos em node ou até integrações para não reiventar a roda (como auth). Abraços!

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

    Excelente video!
    Você pretende lançar algum treinamento de DDD com Spring?

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

      Fala Marlon, tudo bem? Pretendo sim! Em um futuro próximo, com um modelo diferente dos cursos que tem no mercado atualmente.
      Fica ligado! Abraços

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

    Sensacional e direto ao ponto. Está me ajudando muito em uma missão. A terceira parte já saiu?

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

    Parabéns pelo vídeo, Gertel!
    Bacana ver alguém abordando a discussão e o uso de event sourcing, CQRS, ddd. Vou acompanhar aqui =)
    Sou colega do Luis (finx), ele que me indicou seu canal!
    Estamos desenvolvendo um projeto usando esses conceitos e estamos usando o Axon tb.
    Decidimos usar esse framework pois parecia ser um caminho rapido pra ter algo standalone subindo com spring e tal, pelo menos pra validar os conceitos nessa fase de definição do projeto.
    Mas estamos avaliando se realmente iremos para produção com ele...
    Já utilizou em prod?
    Tem alguns pontos que estamos validando, principalmente:
    - Funcionamento em cluster, pra garantir disponibilidade com réplicas (com ou sem axon server);
    - Replay de eventos para depuração/reprodução de cenários;
    - Performance da sincronia (memória/persistência) dos eventos e estados;
    nao precisa se preocupar em responder esses tópicos!! hahah só abrindo a discussão mesmo
    De novo, parabéns pelo canal!
    Ta bacana o conteúdo e formato!
    []'s
    Kuroki

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

      Fala Renan, tudo certo?
      Fico feliz demais em já promover discussão desse nível aqui no canal. Muito obrigado!
      Já rodei AxonIQ em produção para alguns produtos, mas todos com necessidade real de event sourcing. Um deles é a venda de passagens de ônibus que pode ser feita por diferentes canais e tem regras bem interessantes como embarque por QR Code.
      Antes de responder os tópicos como tu não comentou - tenha certeza em não cair em nenhuma armadilha de CQRS: Modelagem de eventos (tem um miro ai com tudo mapeado?), serialização, sincronicidade e normalização de projections. Os planos de contingência são um pouco diferentes e um pouco mais trabalhosos.
      Tentando responder aos tópicos:
      - Funcionamento em cluster, pra garantir disponibilidade com réplicas (com ou sem axon server);
      Eu iria de Axon Enterprise Server (se custo não for um problema). Ele tem features por contexto (é animal pq tu consegue escalar um bounded context) e trabalhar em clusters tranquilamente. Simples pra tratar inicialização e ACL. Indo por outro caminho, considerando que o comando do Bus e Store será do Axon, você pode pensar em AMQP ou Kafka - betaV2 para este último.
      - Replay de eventos para depuração/reprodução de cenários;
      Talvez você possa considerar Micrometer, Prometheus e Grafana pra te ajudar com debug. Seria possível trabalhar com timers, counters, capacidades etc. Tu pode por exemplo construir novas projections baseado em reprodução de eventos para conflitar resultados em alguma plataforma.
      - Performance da sincronia (memória/persistência) dos eventos e estados;
      Dá uma olhada nesse cara talvez te ajude com algumas das dúvidas. bit.ly/3f9OI6X

      Espero que isso te ajude de alguma forma! Se quiser abrir uma discussão com o Allard Buijze (pai da criança) não é complicado ok?
      Abraços mestre!

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

      ​@@arquitetodasgalaxias poo, valeu pela resposta Gertel!!
      Venda de passagem/embarque no ônibus usando QRcode? Nosso sistema tb atua nessa área! Coincidência absurda!! haha
      Relmente a modelagem bem definida dos eventos e dominio é essencial.. nao conhecia esse miro, vou testá-lo!
      - Em relação ao Axon Server, preciso testa-lo melhor ainda... mas pelo que vi ele será necessário mesmo para poder gerenciar o fluxo em multiplas instâncias.
      - Micrometer ajuda bastante mesmo no monitoramento e análise... Prometheus e grafana nunca usei, vou dar uma estudada sobre.. Ja ouvi alguns comentando do uso do zipkin pra tracing e tal, mas não cheguei a testar.
      - valeu pelo doc! tinha visto um video do Allard que ele apresenta alguns desses slides! mas esse que vc mandou tem mais detalhes =)
      Acompanho algumas threads no fórum deles (google groups), creio que vc tb esteja por la! rs A equipe deles é bem acessível de fato!
      Brigadao pelo retorno!! Vou seguir acompanhando aqui o canal e dando pitacos haha
      Forte abraço!

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

    Não abandona o canal não! voltaaa hahahaaha

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

    Cara. Parabéns pelo canal. Estou curtindo bastante.
    Fiquei com uma duvida. Por que você escreveu só o data class em kotlin e o restante em Java?
    Existe alguma incompatibilidade do axon ou alguma lib do projeto com kotlin? É que nunca vi ninguém que usa kotlin voltar usar Java, por isso fique curioso.
    Estou ansioso pelos próximo vídeo. Vlw

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

      Fala Giovani! Muito obrigado pelo feedback!
      Quanto ao Kotlin, nada especial - não quis complicar a curva pra quem é Javeiro! Em um futuro próximo vamos desenvolver uma aplicação mais complexa, provavelmente vai ser tudo Kotlin. Abraços!

  • @LucasGomesSantiago
    @LucasGomesSantiago 3 года назад +2

    Show de bola! Só não curti muito a velocidade kkk ficou uma loucura meu! Vc poderia fazer na velocidade normal e dividir em vários vídeos... mas enfim, vlw!

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

      Fala Lucas!
      Estou me planejando pra gravar um curso com vários vídeos sobre este assunto, pegando um domínio comum tipo um ecommerce coisa e tal. Te aviso ok?
      Abraços

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

    Video massa! Qual é o pluguin do Intelij? Visual bonito hem...

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

      Valeu mestre! Eu uso o material theme do intellij! Tem várias opções bem legais!

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

      @@arquitetodasgalaxias Já instalei aqui! Mto fera!

  • @14CGERT
    @14CGERT 4 года назад +1

    Esse sabe!!!

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

    Pretende fazer um curso? eu compraria sem peso na consciencia

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

      Mais pra frente! Voltando a gravar conteúdos para o canal, quem sabe pode ser a próxima etapa!

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

    Cadê a parte 3?

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

    Topa fazer um live coding no meu canal sobre esse tema?

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

      Me desculpa não ter respondido cara... correria total mas agora estou de volta. Ainda tem interesse? Vamos falar.

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

      @@arquitetodasgalaxias vamos sim