Unknown

0 views12735 WordsCopy TextShare
Unknown
Video Transcript:
k [Música] k [Música] l [Música] C [Música] k [Música] h [Música] [Aplausos] [Música] k [Música] k [Música] aí pessoal chegamos salve devis beleza como que vocês estão estamos começando mais uma live aqui no canal full cycle vamos lá para mais um dia do Esquenta sejam todos bem-vindos todas bem-vindas deixa eu dar boa noite pro Renato mestre já tinha mandado mensagem ali por volta das 5 horas ó o Cristiano Oliveira o Henrique domareski Afonso Xavier Guilherme Belizário luí Carlos meu xará Santos qa Robson Alves Ricardo Espinoza Mônica Menezes universo habitado Humberto Oliveira Pedro Henrique Rafael Pereira
sempre nas lives aí com a gente Pietro Pinton Samuel Camargo Dev Vader ó ó o nick gostei Dev Vader isso aí Leonardo Mateus show de bola pessoal então nosso terceiro aqui dia do Esquenta da imersão né mas Lembrando que a imersão começa na segunda-feira isso aqui apenas a gente tá esquentando o evento Então marque aí na sua agenda né Deixa eu até olhar para não errar aqui dia 17 de Fevereiro vai começar a construção ali do nosso home broker usando todas essas tecnologias que a gente tá mostrando aqui durante a semana nós começamos ali com
a Live de docker com Wesley ontem fui eu mostrando o njs que Framework node E hoje nós vamos ver esse kafica aí e vai ter um adendo né Eh eu publiquei nas minhas redes sociais cafc na verdade você vai encontrar uma série de conteúdos e lives aqui no canal Uma das principais ferramentas que a gente fala mas esse kic Deb a gente não tinha mostrado ele ao vivo então é Live inédita que a gente tá trazendo para poder agregar mais conteúdo top aqui para vocês então vocês estão sendo privilegiados aí em primeiro mão que é
um recurso Fantástico né tenho certeza que no final dessa Live você vai explodir a sua cabeça você vai ficar Maravilhado com as possibilidades que a gente vai ter aqui ó tem mais pessoas aí chegando ó José a sempre aí com a gente também vi que ele chegou ontem atrasado aí na Live mas show de bola se vocês quiserem se inscrever pelo link que tá na descrição n você não precisa copiar ou digitar no seu browser se inscreva tá porque aí você vai receber as notificações do que vai ocorrer na semana que vem tem os vídeos
que a gente desenvolve eu e Wesley a gente solta ali logo pela manhã vai ter as lives à noite que a gente vai trazer uma série de referências do mercado de tecnologia sempre com assuntos top eh vai ter grupo no discord também que você participa enquanto você vai replicando né vai tirando dúvida precisa tirar dúvidas você entra ali no grupo do discord e se comunica com a gente com as outras pessoas é é bem legal durante a semana que passa Eh quero saber também de vocês quem aqui é novato ou novata Coloca aí # novato
ou novata só para eu ter ideia eu já sei aqui de uma série de figurinhas carimbadas pessoal que já participa eh de eventos anteriores que a gente sempre vê aqui no canal e também pessoas que eu já vi aqui na live do Wesley porque eu tava acompanhando também e a Live de ontem mas eu quero saber quem é novato ou novata o Alexander eh o Guilherme Belizário sou novo vim pelo Cica Santos qa a Mariana Merlin Michael D dombo acho que é pronunciei errado né Humberto Oliveira o Jarbas de Sá Júnior novato demais show de
bola então principalmente vocês novatos sejam bem-vindos e bem-vindas espero que vocês apreciem esse tempo aqui que traga muito conhecimento aí para vocês tá para quem não conhece a full cycle é uma instituição de ensino nós temos esse canal aqui no YouTube para poder fazer os eventos divulgar conteúdo então espero também que você se inscreva no canal toda a semana fora os eventos nós temos conteúdos eh de tudo quanto é tipo então Ative o Sininho das notificações também assim você não perde nada e eu não já vou falar para não perder o fil da meada tá
dê o like isso nos ajuda bastante então deixa eu até olhar aqui Quantos likes a gente tem nós temos 153 pessoas ao vivo e Quantos likes apenas 54 likes pessoal a gente merece não cai o dedo tá se você puder nos ajudar aí já Aproveita que vai ser muito bom tá então a full cych é uma instituição de ensino nós temos eh uma faculdade com pós--graduação MBA tem o curso full cycle também que é um dos cursos mais conhecidos das nossas formações e eu que vos falo né meu nome é luí Carlos sou ctio da
full pych e também Professor das formações se vocês quiserem me seguir nas redes sociais quiserem bater um papo comigo algumas pessoas já me adicionaram Já mandaram mensagem é ali ó @ aqui ó @ argentinalove Instagram é qualquer coisa @ argentinalove eu tenho utilizado tá Ó tem mais gente que é novato ali o Mário a ruda o Edson Vitor viu a Live de docker ontem não pode acompanhar então ó lembrando até colocar isso aqui na tela todas as lives ficam disponíveis no canal então se você não viu alguma das duas lives anteriores já veja Não deixe
para depois porque tudo que a gente deixa para depois fica para depois mas elas ficam aí no canal vocês podem aproveitar o quanto você vocês quiserem também essa a dúvida Na verdade acho que mais rola aí durante a semana provavelmente você tá no fim do expediente cansado e etc não consegue acompanhar todas as lives ou não consegue acompanhar a Live completa e fica com essa dúvida aí então já fica aí na tela quem mais é novato ó o Júnior Pai do Enzo e Léo e Mateus Santos Lopes Ah o Devid veider também que eu tinha
gostado ali do Nick dele David Souza o Tag ofc Bruno Hoffman É isso aí pessoal o Marcelo CB também Leonardo Mateus show de bola Maravilha meu povo então dado as boas-vindas mais pessoas entraram aqui na live vamos começar a nossa brincadeira né a gente tá fazendo esse evento com o propósito de criar uma aplicação como home broker home broker que é uma aplicação que você compra e vende ações né você vai encontrar tudo que é tipo de home broker por aí eh os bancos tradicionais tem home broker eh plataformas de investimento tem aí você pode
negociar as ações por exemplo na Bolsa de Valores aqui do Brasil ou pode negociar ações pelo mundo afora pode negociar ações Americanas A ideia é justamente ser um sistema ali que intermedia essas negociações né então esse sistema vai se comunicar com outros e também com a instituição ali que organiza as ações no caso aqui do Brasil tem a B3 lá nos Estados Unidos eh ao al Street né enfim Então a gente vai desenvolver esse home broker usando aí docker nest que a gente viu hoje e o Cica tá Cica como eu já disse aqui Há
alguns minutos atrás uma das principais ferramentas que a gente fala aqui no canal e o kafica é uma ferramenta de gente grande mesmo eh você vai encontrar empresas como a Uber que utilizam exaustivamente essa ferramenta e o intuito dela é trabalhar com streaming de dados imagina que hoje ainda mais hoje com a evolução tecnológica que a gente tem né Eh nós temos computadores Super Poderosos eh dispositivos inteligentes vários ã várias coisas com sensores né você tem Aviões com sensores a sua cadeira agora tem sensores a sua geladeira tem sensores todas essas coisas acabam emitindo não
somente alguns eventos Mas você imagina durante um voo um avião com sei lá n sensores que deve ter sensores deve ter um monte de sensores na asa na parte da frente do avião quantos ã eventos ali de de informações sobre aquele voo não são emitidos n então é aí que entra a história do CFC porque nesse fluxo de eventos que vão acontecendo o caica é uma ferramenta que pode armazenar esses eventos durante um tempo e ser uma ferramenta que vai permitir que a gente lide com esses eventos de uma forma inteligente então esse fluxo contínuo
desses eventos a gente chama de streaming de dados então o Cica que é uma ferramenta que é mantida aí pela foundation muito conhecida por isso que a gente pode chamar também de apach cica uma ferramenta que tem um trp absurdo né ela consegue eh receber esses eventos e entregar para outros interessados em um tempo de 2 mundos isso processando milhões de informações por segundo é algo realmente absurdo a título de curiosidade a ferramenta foi criada em 2011 Então a ferramenta já tem um bom tempo de mercado e ela é feita com Java e normalmente você
não vai encontrar empresas menores utilizando a Cica porque é uma ferramenta que tem um custo maior para que você Rode para que você mantenha ela funcionando né e justifica-se justamente uma ferramenta dessa para um cenário como esse né você tem às vezes Imagina você tá numa indústria e aí e você tá numa montadora quantos sensores não devem ter ali na na linha de montagem pra gente saber ah quantos carros estão sendo montados por segundo as máquinas que estão estragando outras coisas sei lá eu não tenho nem ideia do que acontece então eh uma montadora pode
usar a par Cica para poder abstrair esses eventos e depois ter inteligência em cima disso por isso que o apach cfic é muito utilizado para Bi e esse tipo de coisa tá então eh num uma ferramenta que você vai colocar assim você tá começando um projetinho seu MVP você tá numa empresa pequena ali Provavelmente o Cica não vai se justificar Beleza então Eh eu quero compartilhar minha tela pra gente poder conversar um pouquinho mais sobre esse apach Cica Então vamos imaginar né o caso que a gente tem aí do Home Broker a gente criou uma
arura que é exatamente assim ó eu vou ter o Home Broker de um lado e tenho a B3 do outro né a gente tá simulando aqui a B3 Inclusive a gente vai construir isso com gol que é a Live de amanhã às 7 horas aqui no canal com Wesley tá agora vamos imaginar que esses home Brokers né eu posso ter aqui o Home Broker da XP Investimentos Posso ter o Home Broker da BTG Bal Posso ter o Home Broker do banco Inter o Home Broker do Banco Itaú eh todo toda a empresa de investimentos vai
criar ali um sistema para poder eh enviar essas ordens de compra e venda das ações etfs fundos imobiliários e etc né Eh imaginando nesse cenário quantas ordens de compra e venda quando abre ali o mercado né o mercado às vezes abre às 10 horas da manhã abre 11 horas da manhã quantas eu não tenho nem ideia mas eh a gente deve ter milhões de ordens de compra e venda aberta o tempo inteiro né E se a gente fosse fazer uma comunicação entre essas duas aplicações o primeiro pensamento que a gente poderia ver é justamente o
http né eu poderia enviar essas chamadas http pra B3 e já criar essas ordens né mas o http sendo um protocolo síncrono traria alguns problemas nessa arquitetura aqui é porque eu tenho que enviar a ordem de compra e eu tenho que esperar a resposta da B3 logo de cara né e isso faz aqui inclusive que faz isso faz inclusive com que se a B3 ficar fora né Eh não tenho nem acesso a esses dados tem nem acesso a essas informações Mas nenhum sistema fica operando 100% do tempo mas vamos supor que durante 1% do tempo
durante um ano inteiro a B3 fique fora do ar por qualquer motivo sequer então quando eu faço essa chamada http eu acabei de perder aquela ordem de compra né porque eu fiz o envio não consegui fazer o cadastro dela ter que ficar enviando depois então aqui com esse http faz com que eu tenha que fazer um escalonamento absurdo aqui para poder atender a demanda dos vários home Brokers existentes né então aqui eu tenho H menos possibilidade de ser resiliente e imagina um cenário que as pessoas estão perdendo as ordens de compra e venda seria muito
ruim para poder lidar com isso né eu teria eh um gargalo aqui então nesse cenário em que eu tenho esse gargalo ao invés de trabalhar de modo síncrono a gente pode trabalhar de modo assíncrono e aqui a gente coloca um broker no meio não confundir home broker com broker porque normalmente a gente coloca esse termo mas se ao invés de eu comunicar diretamente com a B3 pode ter o escalonamento lá não importa como que está fazendo e se eu publicasse uma mensagem para esse broker e a B3 na verdade Consumista Então olha a arquitetura como
que ela fica diferente né então aqui eu publico uma mensagem aqui eu publico outras mensagens os Home Brokers vão publicando e esse broker aqui vai garantir que não só a B3 mas como Outras aplicações possam consumir E aí elas podem consumir no tempo delas vamos imaginar até que não seria somente esse exemplo aí de plataforma de financeira mas se eu tivesse um e-commerce da vida né o e-commerce também é bem fácil de compreender eu teria de um lado poderia ter um microsserviço de pedidos e do outro lado um microsserviço que vai gerar nota fiscal eletrônica
se eu faço com http eu vou ter que escalonar esse nota fiscal eletrônica que é absurdamente né porque é tudo síncrono quando Eu trabalho com fazer o pedido eu já tenho que fazer a nota fiscal eletrônica então se eu tiver muitos acessos em pedido vai fazer com que eu tenha que escalonar também além do microsserviço de pedido as notas fiscais mas poxa se eu demorasse ali alguns minutos ou até algumas horas para poder gerar uma nota fiscal tem problema não né então num cenário como esse terceirizando essa responsabilidade aqui para esse broker eu posso ter
aqui quem consome ser ter uma infra muito mais modesta consumir exatamente no seu tempo né Enquanto aqui desse lado de cá que tá ficando ali eh em contato direto com o usuário vai receber milhões de acesso a gente tem que suportar tudo isso agora quem consome ele pode consumir em qualquer momento se a B3 falhar ela volta e as mensagens continuam aqui nesse broker e ela continua consumindo né mas a questão é que ferramentas para que funcionam como brok a gente tem várias no mercado tem rabt MQ e tem nats tem o próprio redis que
dá para poder trabalhar com com esse tipo de situação né mas o ponto é justamente que o apach Cica é diferente de todas essas ferramentas que ela faz exatamente o que todas essas ferramentas aqui faz mas ela faz muito mais né Por ela vai lidar com esse conceito de streaming de dados Isso significa que a partir desses eventos que vão chegando eu consigo extrair inteligência dessas informações e reagir também de forma inteligente coisa que essas outras ferramentas são mais focadas em criar uma fila de mensagens para que outros consumam mas não tem essa esse conceito
de reagir em tempo real a esses eventos então por isso que a gente trouxe o apach Cica pro nosso evento né então esse broker aqui vai ser o kafica porque imagina quantas informações a gente não poderia processar à medida que eu publico novas ordens mas também que quando a B3 processa Ela poderia publicar de volta aqui o os trades feitos né as negociações das ordens e a partir daqui eu Poderia gerar quantas informações de negócio inteligentes extrair reagir e etc tá então o apf nesse cenário seria muito legal porque abriria um campo de possibilidades pra
gente e como que funciona o apica por debaixo dos panos tá Nós temos dois conceitos base para que você entenda sobre o apfc tópico e partição tá o tópico são os lugares onde nós publicamos e consumimos as mensagens então poderia ter um tpico de pedidos ou um tpico de ordens de venda e compra né Poderia só chamar de orders se tivesse em inglês Enfim então O tópico é esse lugar que vai condensar um contexto de eventos correlacionados né E aí dentro desse tópico eu tenho partições para que eu consiga ser mais resiliente ao lidar com
o atendimento de quem está consumindo e de quem está publicando também então Eh eu posso ter nesses por exemplo vamos supor que eu tenho um tópico de das ordens aqui aí eu posso criar três partições partição um partição dois e partição TR para que aumente o trp de quem está consumindo para que eu permita que as pessoas consumam mais rápido e também permite que se eh alguma dessas partições falharem eu tenho uma outra que é uma cópia que permite que se continue consumindo tá e a gente costuma falar que na verdade O tópico é um
conceito Lógico né porque quando você vai olhar para armazenamento mesmo o tpico não existe só existe a partição Então essa configuração da partição ela não tem uma recomendação específica ela vai de encontro com as suas necessidades quanto mais partições eu tiver mais resiliente eu sou e mais eventos eu consigo atender tá então funciona exatamente dessa forma agora V pensar numa situação eh acho que o exemplo do e-commerce Ele é bem categórico pra gente poder brincar sobre essa questão do cafca né E então eu tenho o meu ecommerce poderia ser Mercado Livre casas Bahia Magazine Luisa
qualquer um desses grandões né que tem um volume de eh vendas enorme então eu criaria aqui um tópico V colocar aqui eu criaria um tópico de orders e desse tópico de orders eu receberia o evento de novas novos pedidos Vamos colocar pedidos que eu acho que é melhor eventos de novos pedidos que tudo quando a gente tá falando de evento né se você às vezes não tá entendendo o evento é um fato é algo que aconteceu então quando eu tenho um pedido gerado eu tenho o evento desse pedido que acabou de ser criado eu posso
ter o evento de cancelamento do pedido eh Posso ter o evento de reembolso que envolve também isso né posso ter às vezes uma alteração no pedido tudo tudo que é evento em relação a pedido eu posso publicar aqui no meio desse tópico né então eu teria aqui uma aplicação poderia ser uma II Rash ou qualquer coisa assim enfim de pedidos e ela vai publicando toda vez que ela faz alguma coisa ali ela publica esses eventos aqui agora Olha aqui a gente vai chegar no assunto da Live porque você viu que na no assunto da Live
a gente até vou ler o título né Tá Cica e kebi transforme e dados insides em tempo real a partir aqui desse tópico de pedidos Vamos colocar assim tópico do Cica de pedidos eu tenho esses eventos que são publicados aqui e aí eu poderia ter n aplicações consumindo isso né Poderia ter o microsserviço de nfe poderia ter o microsserviço de expedição sei lá n coisas aqui não importa não importa todo mundo tá consumindo as informações daqui o tópico ele pode ser consumido por n aplicações quantas forem necessárias mas vamos imaginar num cenário que você tem
uma data comemorativa ou uma black friday acontecendo e provavelmente você vai ter uma série de pessoas que vão ficar olhando eh dados das vendas do que tá acontecendo ali o tempo inteiro né Eh Imagino que seja um caos mas pegando essa aplicação de um e-commerce eu tenho todos esses eventos sendo publicados Então vou até ordenar aqui ó Colocar assim evento eh coloquei novas né colocar aqui novos pedidos é cancelamento e rebolso certo pensando em informações valiosas de negócio aqui e tá acontecendo tudo isso aqui eu poderia querer saber eh quantas vendas estão sendo canceladas num
determinado tempo o total de vendas a cada meia hora começa você começa a perceber o o quanto de informações nessas situações principalmente críticas que a gente poderia extrair né quantas vendas estão sendo abandonadas pelo cliente né Às vezes o cliente coloca um produto no carrinho coloca os produtos ali ele vai Não finalizar a compra a gente não sabe o motivo mas poxa posso ter um número alto aqui pode estar acontecendo alguma coisa quantas informações a gente não poderia extrair desse contexto que está acontecendo aqui né E aí que é o ponto somente essas três informações
que eu dei aqui quantas vendas estão sendo canceladas num determinado tempo o total de vendas A cada 30 minutos quantas vendas est send abandonas pelos clientes eu PED para vocês agora aqui baseado n independente aqui da quest do Cica usando a linguagem de programação o Framework que você mais gosta que você tem mais habilidade quanto tempo que você me daria para poder construir essas informações e disponibilizá-las num api e também delas estarem disponíveis num front end vai que você não desenvolve o front end é é uma equipe ou o seu colega somando tudo isso o
backend frontend para poder disponibilizar isso aqui quanto tempo que vocês me dariam essas três Marcos Faz uma pergunta aqui quando o microsserviço consome Um item de um tópico como fazer com que outro microsserviço venha a consumir também o mesmo número do pedido da fila que já foi consumido isso você tem que criar um fluxo né porque quando você publica as mensagens com Cica essas mensagens elas tendem a ser ordenadas então no caso aqui de nfe e expedição elas podem consumir todos os eventos que são publicados aqui mas por exemplo PR expedição você só vai consumir
um evento de um pedido que já foi devidamente finalizado né você poderia ter aqui na verdade até antes da nfe um microserviço de pagamento muitas empresas acabam operando dessa forma então eu faço aqui o pagamento publico de volta Nesse tpico a esse assumir para poder alterar o status lá que tá pago no banco de dados e aí vem aqui para expedição né Então aí entraria uma organização desse fluxo E aí você poderia trabalhar com conceitos como Saga coreografia a gente traria outra história que é o assunto que a gente não vai ver aqui mas e
aí pessoal quanto tempo quanto tempo gastaria Até agora ninguém se arriscou né É difícil determinar tempo quando alguém pergunta e essa feature aí e essa correção quanto tempo vai levar não é complicado o louran rodrig falou ó quando o pagamento é feito ou cancelado é fácil fazer uma Carry no banco agora as vendas abandonadas é complicado pois é né Ó o Ricardo Espinoza se arriscou foi o primeiro hein três dias se não der ruim nos testes de Q três dias mas tipo assim pense você tá Às vez na véspera da black friday ou da data
comemorativa sei lá se seja na Natal e final de ano alguma coisa assim você tá na véspera ali ou às vezes você está na data três dias já você perdeu o inside né três dias você perdeu o inside é isso que eu quero que que mostrar para vocês para que você entenda eh a todo momento numa situação dessa aqui a empresa vai precisar de informações inteligentes para poder continuar lidando com o negócio porque por exemplo se eh As vendas estão sendo abandonadas aqui pelo cliente Poxa o que que tá acontecendo será pode ser eh o
problema do frontend ou pode ser o preço tem que dar um desconto ou tem que fazer qualquer outra coisa né Eh o quanto mais rápido eu puder ter essas informações e reagir sobre elas é um diferencial de negócio se a gente tem essas necessidades de extrair essas informações e você demora 3S Dias 5 dias você vai testar tudo isso até ser publicado Poxa você já perdeu a data comemorativa você não tem essas informações você perdeu grana além de E se a gente for programar tudo isso vai ter um custo também de dinheiro né você tá
pegando a sua equipe ali e alocando ela para poder fazer isso sendo que ela já tem as suas outras e tarefas já tá todo mundo atolado n aí que entra Justamente a ferramenta que a gente vai abordar aqui que é o k Deb quando a gente fala de apach cica eh nós não falamos somente da ferramenta que esse broker aqui né que trabalha com esse streaming de dados na verdade nós temos um ecossistema de ferramentas nós temos cfca streams nós temos a Cica Connect ou somente Cica Connect para poder abreviar temos esima registr e temos
o quic de bim todas essas ferramentas aqui elas vão estar em volta do cfca vão ser ferramentas auxiliares que vão permitir que a gente extraia mais poder de fogo ainda dessa ferramenta então a gente tá focando hoje nessa aqui se você quiser dar uma olhada na verdade a gente não tem nenhum conteúdo ainda de streams público aqui mas a gente tem no no curso full pych Inclusive eu tava gravando conteúdo sobre esse streams na semana passada Tá mas sobre Kafka Connect tem aí no canal que você pode achar é o skima rist tem um pouco
de relação aqui com Kafka Connect também você vai achar conteúdo aqui no canal mas o que que essa ferramenta aqui esse k Deb vai acabar fazendo ela vai permitir que a gente resolva esse problema aqui sem programar em nenhuma aplicação fazendo apenas algum umas caries na própria na própria estrutura do CF tá para que a gente Entenda como que funciona esse casb vamos falar de dois conceitos de streaming versus tables Isso aqui vai esclarecer isso inclusive que eu tava gravando semana passada Eh tava falando PR os alunos sobre isso isso aqui muda o seu entendimento
sobre tecnologia como um todo como que bancos de dados funcionam e tudo mais muitas vezes você olha para esse conceito de streaming n você eh pensa muito na Netflix você tá recebendo dados contínuos ali dos do do conteúdo que você tá assistindo né o stream é justamente essa transmissão contínua de informações e aqui a gente tá lidando com eventos Mas você já parou para pensar que logs né logs a gente vê o tempo inteiro é um é um irmãozinho do streaming porém mais enxuto né Vamos pensar o seguinte todo mundo imagino aqui que já tenha
pelo menos visto ess Kell na vida e para cada Carry que muda o banco de dados eu poderia acrescentar nos logs né vamos supor assim insert into e category vou passar aí de nome aí depois coloco lá eh id1 e a categoria xpto 1 certo então isso aqui vai me desencadear fazer um insert vamos supor que eu tenho vários inserts acontecendo e a última transação que aconteceu na verdade foi um update category set eh name é igual a xpto aa ID é igual a do então aqui eu tô mudando justamente o registro segundo que eu
excluí Então vamos imaginar que eu tenho um log dessas execuções e bancos de dados armazenam esses logs tá tem tabela sem tabela eu conseguiria sem tabela conseguiria pegar todas as categorias existentes consigo né consigo eu pego leio o arquivo do log vejo aqui ah tá categoria não sei o que então então eu sei que vai ter eh um xpto 1 2 e aí o dois mudou para xpto AA né obviamente vou ter que ter uma lógica ali aí depois xpt na verdade aqui eu não coloquei né xpto 2 3 e 4 aqui 3 e qu
pessoal o áudio tá baixo deixa eu aumentar aqui T com áudio que eu uso nas gravações deixa eu aumentar mais Vê se agora melhorou aumentei aqui mais três decibéis E agora me de feedback aí testando 1 2 3 áudio testando testando me deem feedback vou beber uma água aqui tá ok aí aumenta mais um pouquinho tá deixa eu jogar aqui para 36 então mudou pouca coisa e agora É porque tem gente que tava assistindo não tinha falado nada talvez eu não sei se é o dispositivo que pode estar com áudio baixo alguma coisa assim tá
super alto agora pera aí Alguns falou falaram que melhoraram outros que tá Tá eu vou deixar um meio termo aqui ó tentem aumentar o volume de vocês que eu tô transmitindo aqui para ter uma boa qualidade de áudio sem ruído Tá então vamos pensar que através só do log se eu consigo pegar os dados de categoria eu consigo né eu faço ali uma lógica varro todas as linhas eu tenho que checar né O que é insert O que é update tal então eu consigo pegar os dados das categorias existentes como eu consigo às vezes pegar
somente uma informação Ah eu quero pegar a categoria onde o ID é TR ou é qu enfim a gente pode falar que um log essa espécie de stream porque ele vai aumentando ao longo do tempo ele está numa sequência né então os bancos de dados fazem isso o log é apenas eventos que estão acontecendo de forma contínua Tá mas vamos pensar que se eu quiser extrair informações daqui Poxa toda vez eu tenho que eu só tenho algumas linhas agora se eu tiver milhares ou milhões de linhas no log ler ele sempre para poder extrair as
informações que eu quero seria muito ineficiente eu usaria muito memória usaria muita CPU Enfim então aí que entra uma tabela eu posso ter uma tabela disso porque ao invés de ficar aliando né eu crio já uma tabela com as informações pertinentes toda vez que acontece alguma coisa eu posso ter o meu log Mas eu posso ter uma tabela então a gente pode ver na verdade que uma tabela Na verdade é um Cash do log Você já parou para pensar isso tabela é um Cash do log ela é muito mais eficiente né porque quando eu faço
alguma transformação em algum registro vou lá ah eu vou lá exatamente no registro três e agora coloco aqui a mudança que aconteceu mas aí eu tenho aqui mais um update que aconteceu no meu log né aqui o id3 e o xpto é 4 PS né então Eh pensando que o kafica pensando que o Cica é uma um streaming de dados ele vai recebendo obviamente não são essas caries eu tô usando como exemplo ele vai pegando ali os dados dos pedidos ou do que você quiser eh para que a gente extraia essas informações inteligentes aqui contabilize
coisas some agregue e tudo mais eh é complicado porque quando a gente olha para um tópico do Cica o tópico ele só trabalha com o conceito de streaming só tá ele é uma sequência de eventos enumerados enumerados né E a gente não tem tabela dentro dele então é aí que entra e essas duas ferramentas aqui na verdade vou até colocar uma perto da outra o casic Deb e o kafica streams eles conseguem fazer o cafc mesmo continuando a trabalhar e com no modo Strings mas e conseguir emular uma tabela tá entendendo que eu tô dizendo
é justamente essa que é a questão então mesmo trabalhando com a sequência de eventos eu consigo criar uma tabela disso e tabelas da forma que eu quiser tá então é justamente aí que vai entrar esse quic de bim beleza entenderam isso aqui pessoal fez sentido eu espero que agora vocês olhem pros dados né quando você tá olhando ah tabela Poxa tabela é uma agregação dos logs né eu tenho logs em algum lugar ele tá fazendo um Cash para mim me deem um feedback se fez sentido aí para vocês é o que o Marcos falou ali
ó é o que a gente tá logs tem muito mais valor agregado do que a tabela porque a tabela é só uma foto é uma perspectiva né E quantos tipos de de tabelas eu poderia extrair daqui essa tabela ela está listando as categorias mas eu poderia ter uma tabela que armazen asse os Val o total de categorias existentes e várias outras informações então a tabela é sempre um olhar e nichado pros logs que você tem então agora vamos pra parte prática é isso que eu quero mostrar para vocês tá deixa eu pegar aqui a minha
aplicação E aí vocês vão ver como que o docker ajuda demais né porque o kafica é uma ferramenta Java não é complicado de instalar na máquina mas eu não preciso de instalar na minha máquina eu posso rodar tudo com containers né então eu criei um docker compose todo esse material aqui no final da aula eu disponibilizo para vocês como ontem tá Pode ficar tranquilo quanto a isso então eu criei um docker compose para que a gente possa subir o Cica aqui tá Justamente a configuração do contêiner do Cica né Nós temos muitas informações como eu
falei não é uma ferramenta eh tão linear assim e aqui é uma imagem que eu estou utilizando da confluent a confluent é uma empresa que ajuda a manter o CFC né porque ela é mantida pela parte foundation mas você tem várias empresas que ajudam então uma das principais é o conflent inclusive se você quiser pegar um Cica autog gerenciado a confluent tem a Cloud deles lá Especialista com o cfca então aqui é uma imagenzinha já preparada deles e etc uso Keeper que é um server Discover porque o Kica como sendo sistema distribuído Eu tenho um
cluster com nós e o zeper ele ajuda a organizar ele sabe aonde que está todos os nós e etc apesar da gente só tá rodando um nó aqui para teste né que é mais que suficiente mas o zeper precisa estar presente para que funcione mais embaixo tem o esquema registry que é uma outra ferramenta que eu tinha falado ali ela serve pra gente poder eh forma ter um um esquim pros dados Então imagina assim que o Cica ele pode receber um XML um Jon eh arquivos de vídeo ou qualquer outra coisa assim então a gente
consegue ter um formato e confiar naquela informação então ele valida ele converte faz um monte de outras coisas e esse esquema H ele é necessário para que a gente Rode o k Deb tá que é justamente esse contêiner também todo o material que a gente tá subindo aqui é da confluent aí eu tenho o server desse KC DB que é ele vai na verdade eh até Não falei disso e é um bom momento para poder falar agora o kcb ele não é exatamente um banco de dados ele vai ser uma aplicação que você vai determinar
ali como que ela vai reagir aos eventos dos Tópicos que estão acontecendo E aí ela publica em outros tópicos Então na verdade ela é um um banco de lógica para que você contabilize as coisas que você precisa então eh a gente não fica armazenando as informações mesmo dentro do próprio cas KB tudo que ele precisa armazenar eh em questões ali da das informações mesmo dos dados ele usa sempre o Cica tá aí tem o c dele pra gente poder fazer comandos e o interessante que o cli parece bastante com my cql Então os comandos ali
de é show select a gente vai conseguir fazer então também aqui da confluent e o Red pum data que é uma ferramenta ui para que a gente possa brincar com cafc publicar informações nele e etc então já é um docker compose preparado Não se preocupe com essas informações você não precisa saber isso aqui tudo isso aí tem já disponível tá não fique preocupado com isso então vamos rodar aqui a nossa ferramenta e o meu docker acho que tá em modo standby deixa eu colocar ele para funcionar aqui pronto então ele vai começar a subir todos
esses contêiners vai demorar alguns segundos e a gente já vai poder brincar com o cá ele demora aqui pelo menos uns 30 4 segundos para disponibilizar então ele fica aqui ó o zul Keeper começou a ser levantado ele tá aguardando o Cica ficar de pé aí o kafica começou a rodar agora aí do kafica vai desencadeando as outras coisas né então imagina como que o o docker É legal porque para você poder rodar um ambiente desse você tem que instalar tudo na sua máquina e aí você instala às vezes comete alguns erros e etc tem
que ficar desinstalando as coisas uma vez você tá com contêiner se eu quiser destruir tudo isso aqui destrói o recrio 1 vezes sem dó nem piedade né Eu acho que já deve ter subido ali vamos voltar lá pro browser e vamos colocar aqui http dois pontos barra barra local host na porta 80 80 aqui ó Então essa interface do Red Panda que assim Existem várias interfaces da própria confluent tem interface deles mas quando eu vou fazer algumas coisas mais específicas assim eu gosto de utilizar o Red Panda eu acho mais bacana a interface enfim eh
Existem várias por aí aqui mostra né que a gente tá rodando um broker com cfic as informações desse cluster né que só tem um nó tem esse id1 aqui e aí eu tenho aqui os tópicos como eu habilitei no KB para quando ele processar as coisas a gente tem um log aqui de informações dos problemas que podem acontecer então ele acaba criando um tópico então o tópico fica aqui exatamente nessa parte vou até dar mais alguns ZS então eu posso criar por exemplo um tópico de pedidos aqui eu posso escolher o número de partições por
padrão vai ser exatamente um e tá aqui o meu tópico não tem nenhuma mensagem publicada no momento eu posso publicar dessa própria plataforma aqui então toda mensagem no cfca ela tem duas informações ela tem aqui que pode servir como um identificador ou um ordenador da mensagem Eu não quero entrar em muitos detalhes como isso mas só para você já ir tendo contato com essas informações e o valor da mensagem como um todo aqui ela não é obrigatória de você passar mas o valor é o valor pode ser qualquer coisa aqui a gente já tem disponibilidade
de não publicar nada se eu quiser colocar um tipo Jon o que aí já eu já posso criar aqui um formato lá com aquele esquema regist e validar a mensagem que eu estou publicando porque vamos supor assim que eu espero uma mensagem com determinados Campos cada Campo tem o seu tipo Então posso usar aí esse Av para ter mais segurança mas eu posso publicar um texto qualquer aqui ó novo pedido fiz a produção e agora ele já aparece aqui então ele está disponível para que Outras aplicações consumam como eh nós estamos trabalhando com o streaming
de dados ordenado toda a mensagem ela vai ter um offset né então se eu publicar uma nova mensagem e qualquer aqui agora ela vai ter offset um ó tá aqui o valor da mensagem aqui nós não publicamos e tem o time stamp dela então tem essa sequência aqui totalmente ordenada tá eh uma coisa legal do cafc em relação a outras ferramentas né como e ele tem essa possibilidade de fazer reatividade e você extrair informações inteligentes essas informações aqui elas ficam retidas por um tempo por padrão nós temos sete dias de retenção Então essas mensagens ficam
aqui o KFC não é um banco de dados né não é para você poder manter essas informações eternas Mas você pode colocar aqui 15 dias um mês se meses o que você quiser o quanto for necessário enfim eh você pode começar a ler essas informações sempre do zero né L sequencial enfim tem várias possibilidades tá então eh a nossa ferramenta aqui está funcionando né Toda bonitinha agora vamos fazer o seguinte aqui para que eu possa trocar de tela eu vou mudar a minha configuração Ó você tá me vendo agora aqui em cima deixa eu até
reajustar minha câmera aqui pera aí ã deixa eu jogar ela um pouquinho para cá ficar bem Centralizado aqui pronto aí vou tirar o meu nome dali agora eu posso trocar de tela aqui mais facilmente Então vamos supor que eu queira criar um tópico de orders né dos pedidos vou criar esse tópico aqui e eu queira contabilizar o total de vendas geral que eu tenho eu vou conseguir fazer isso sem ter uma linguagem de programação Framework ou Nada não vou precisar consumir as mensagens por uma por uma outra aplicação a gente vai usar esse casb então
vou chegar aqui na minha no meu projeto esquecer outro terminal aqui qual que tá preso esse aqui tá livre eu vou fazer o comando docker compos Run cas B cli cas B apontando pro servidor tá para poder ficar bem claro o que eu tô fazendo aqui eh esse container ele tem o cli pra gente poder brincar com o KB imagina que fosse como o cli para poder e brincar ali com banco de dados o postgress que tem o psql o MySQL que tem o próprio MySQL né então a gente tá aqui rodando o contêiner e
aqui é o comando de execução dentro desse contêiner Então estou rodando o ksql apontando pro servidor do KB que está rodando exatamente na porta 888 tá aí ele vai executar esse contêiner e nós vamos ter acesso ao cli do kcb tá aqui ó Então agora eu posso brincar com ele fazer o que eu quiser e eu posso fazer os comandos por exemplo show streams tá vendo aquele tópico que a gente tinha lá na outra tela eu consegui ver aqui será que eu tenho alguma table lembra do que a gente tava falando ó não tenho nenhuma
table tá então por onde a gente vai começar eu vou fazer aqui como se a gente tivesse num banco de dados eu faria um Create table né na verdade é que eu vou criar um stream chamado de orders stream e vou passar aqui o seguinte eu quero e eu vou receber os eventos vou até colocar numa outra variável na verdade que eu posso reusar aqui eh deixa eu colocar um RM pon MD ridm pmd sup que eu tivesse aqui um json né vou ter o evento que vai acontecer vai ser Order P created tenho o
ID do pedido que aconteceu que vou colocar como um Ah qual é o o consumidor que tá envolvido ali com aquele pedido Qual é o produto que eu estou comprando a quantidade o tá fadinho aqui né entendendo que eu tô fazendo e o preço é 100 enfim tá isso aqui seria um evento que seria publicado aqui vamos até publicar ele lá para ficar claro posso chegar aqui Record aí coloco o Jon e copia ele para cá tá Então olha só tem ali o meu evento né ele até mostra aqui enfim então com esse comando que
eu comecei a fazer eu vou criar um stream que vai capturar as informações desse evento que vai lá que vai estar no meu tópico de orders Então vou colocar eh Order ID que vai ser do tipo string ou na verdade a gente pode até colocar aqui XXX V colocar ele como string eh o teu customer Na verdade o customer ID eu não precisaria né né porque se eu quero consolidar o total meu objetivo é esse consolidar o total das ordens eu não precisaria do customer eh eu quero pegar ah nem o produto Eu precisaria que
eu já tenho o preço ali então vou colocar eh a quantidade é inteiro e o price que é Double certo então esse aqui é o nosso stream aí eu tenho que falar que ele tá ligado com o meu tópico lá que está criado então eu coloco assim o if aí vou passar assim kafica Topic é igual a orders Olha foi com a linha de baixo aí eu tenho o value Format é igual a Jon e fechei aqui esse aqui é o meu stream Vamos dar um enter com ponto e vírgula pronto stram criado se eu
fizer aqui um select streams na verdade show streams eu tenho agora o segundo streams que tá ligado lá com o meu tópico de orders Então o que tá acontecendo aqui agora né ele vai pegar todas essas informações Jon que estão sendo publicadas aqui e vai capturar essas informações mim certo agora agora nós vamos criar uma tabela para que a gente possa consolidar essas informações então eu vou fazer um Create table Vamos colocar os resumos da Order né Colocar assim Order summary S select aí aqui eu tenho que tomar cuidado porque como eu vou fazer uma
quero contar o total de vendas e somar quanto que eu vendi quando eu estou no SQL né quando eu faço por exemplo um aqui vem os mesmos princípios quando eu tô fazendo ali um count ou tô fazendo um para poder somar alguma coisa vai se tender que na minha Carry eu vou fazer um group bu mais o as informações ali para eu poder agrupar e fazer a minha agregação né que é o count o aade o o som e etc então aqui eu não tenho nenhum campo para poder fazer essa agregação porque eu tô fazendo
uma contagem global então eu vou colocar aqui o primeiro campo que eu vou chamar de All orders assim S Key que vai ser a chave aqui da minha consulta tô fazendo o select tá ele é apenas pra gente poder usar lá no group buy e não dar problema aí eu vou fazer um count eu quero contar tudo eu vou chamar isso de Total orders vírgula agora eu quero somar a quantidade quantity vezes o price eu vou chamar isso de total revenue ou Total Geral Total total tô sem criatividade tá eh aí eu vou criar essa
tabela a partir do stream então eu faço aqui from lembra que eu criei o meu stream aqui então vou passar orders stream aí eu tenho que colocar o group by porque senão ele não aceita group by Exatamente esse All orders aqui e aí eu vou colocar assim emit Changes para que ele capture e Gere as informações então ó acabei de criar aqui a minha k posso fazer agora um show tables eu tenho aqui o meu Order summary agora olha que interessante o que aconteceu aqui porque quando eu atualizar ó essa tabela que a gente fez
acabou gerando um novo tópico no esse tpico ainda tá vazio né Tá mas é somente isso que a gente precisa agora que que eu tenho que fazer Pego aqui o Jon que eu já tinha feito né porque fica fail para poder colar lá então eu publico um novo evento no meu tópico de orders mudo aqui para Jon publiquei Vamos ver em Order summary ó eu tenho uma um pedido total de 100 né porque eu tinha publicado ali preço 100 quantidade um Agora vamos fazer um novo vou publicar um novo Jon vou mudar agora a quantidade
para 10 e aqui o preço para 133 Order summary eu tenho duas vendas e o total de 1430 agora o que a gente tem que voltar aquele conceito que nós estávamos fazendo você consegue compreender que eh tudo aqui continua sendo um streaming que são esses eventos sequenciais mas eh no caso k Deb permitiu que esse outro evento segundo publicado fosse consolidado com o anterior então o que ele tá fazendo aqui justamente é a tabela né nós pedimos aqui esse comportamento com ele o comando que nós executamos é olha crie uma tabela em que você eh
tem esses dados aqui um deles é a contagem o outro é a soma e joga isso para mim nesse Order summary que acaba se tornando um tópico então eu tenho um streaming sendo transformado numa table muito legal isso né agora vamos fazer aqui uma outra situação eh eu poderia talvez querer ver esse total em em em tempo de execução mas a gente usaria bastante o conceito de janela de tempo né Eh eu quero ver Às vezes o total num em meia hora em 5 minutos em 1 hora eu quero ver as vendas que falhar no
intervalo de tempo então a gente pode fazer esse aqui eu já tenho pronto para não ter que ficar digitando né é bem complicado ficar digitando aa mais em Live para não errar nós vamos fazer aqui um outro tá que vai ser o orders summary time esse aqui vai ter uma janela de tempo evento Então além orders do count e da somatória nós estamos adicionando aqui um Window start e um Window end essas duas informações são informações que a gente pega ali a medida da da data hora que o evento foi gerado então aqui eu estou
criando essa taba falando que eu quero que aa de tempo faça parte dos meus dados e o segredo tá justamente nessa linha aqui esse Window tumbling size one minute né Eh estou falando que no intervalo de tempo de 1 minuto capture para mim todos os eventos e aí ele vai fazer a consolidação Tá então vamos dar um enter aqui agora se eu fizer um show tables eu tenho duas tabelas né Então essa nova tabela ela vai acabar se transformando num novo streaming aqui ó agora eu tenho o summary time então vamos fazer o seguinte pegando
o Jon novamente vamos lá produ não aqui né e produzir no lugar errado aqui em orders ó vamos produzir um evento dois eventos e vamos colocar dois e aqui 200 publiquei dois eventos então se eu olhar aqui no summary time como eu demorei um pouquinho para poder fazer deixa eu ver não não demorei porque ele gerou aqui ele vai gerando os eventos para mim vamos esperar mais um pouquinho para que aí a gente faça a nossa conclusão aqui vou esperar virar mais um minuto porque a gente publica e Analisa as informações mas olha aqui logo
de cara que a gente já tem isso aqui é um time stamp isso aqui é time stamp em relação à data hora que aconteceu Se eu colocar aqui um time stamp no Google né posso usar esse site epoc converter aqui ó se eu jogar ele aqui eu vejo o tempo que aconteceu tá colocando aqui né 12 de Fevereiro e tal isso é Porque toda a mensagem do que eu publico né ela tem o time stamp ali então eu consigo fazer essa administração tá beleza acho que já passou um tempo ou vou esperar mais um pouquinho
deixa eu dar uma olhada no chat beber água Que aí passa mais um pouquinho eu ver hum mait Channel e o Marcos Lima perguntaram se pode substituir o o zeper pelo craft pode na verdade assim e tem até se eu não sei como que tá isso mas a ideia era que não precisasse mais de server Discover né Eh isso tinha sido anunciado eu não sei como que tá mas pode sim substituir sem nenhum problema mas essa configuração aí com o Keeper para poder testar local já está totalmente prontinha que você acha ali na nos repositórios
da confluent que a gente sempre usa nas aulas né Eh que mais tá já passou um tempinho aqui então eu não sei se eu acho que eu copiei o time stamp lá tem que copiar o Jon de novo aqui então Vamos lá eh venho aqui em Ah já tava em orders né vem aqui em orders selecionar Jon vou publicar eh venho aqui de novo e vou publicar novamente então agora vamos no nosso orders summary time ver que a gente tem quatro eventos né olha aqui interessante ó eu quero que vocês fiquem atentos a janela de
tempo a gente pode olhar que nós temos esses valores aqui que são iguais a esse então nessa janela de tempo que eu deixei ali de um minuto e não publiquei novas vendas nós temos o total de Duas vendas e 500 no total mas aí passou um minuto e aí mudou o tempo né A minha janela de tempo já venceu um minuto então ele vai gerar um novo evento com a nova dupla de Windows start Window end E aí começando tive a primeira venda então tenho uma venda com R 100 e a segunda venda agora com
a mesma janela de tempo com R2 Então olha que legal isso né e essa segunda janela de tempo teria esse R 200 eu posso apenas consumir essas informações eu posso plugar agora nesse tópico de orders summary time e consumir as informações de vendas de um em um minuto ou no tempo que eu definir e eu não tive que para poder consolidar essas informações fazer uma linha de código então Pense no que eu posso fazer eu posso contar eu posso somar eu posso agregar transformar os eventos que vem aqui dentro dos Tópicos né Eh transformando-os em
uma tabela por isso que eu tinha explicado o conceito de tabela Porque apesar da gente ter o conceito de streaming né Aí tem esse e casic de B que vai E permitir que a gente Trabalhe com uma table né Então na verdade esses dois recursos aqui depois você pode dar uma olhada também no Kafka streams mas o Kafka streams é mais é você tem que programar em Java né você faz uma aplicação ali e mas os conceitos são o mesmos você vai criar lá um stream vai criar uma table ela vai desencadear em tópicos ali
e e como eu tinha falado né Eu fiz uma parte bem legal de kafica Pro curs Full pych mostrando esse Cica streams aqui na verdade funcionando que eu gravei na semana passada mas eh nós então podemos reagir a esses eventos pense no custo de você fazer isso aqui em apenas em alguns minutos e as aplicações só terem que consumir agora tem mais que isso eu não vou mostrar aqui na Live Mas uma vez que eu tenha esses eventos aqui eu não precisaria criar uma aplicação para poder pegar diretamente daqui sabe o que eu posso fazer
eu posso usar o kafica connect posso usar oica Connect e falar para ele assim Connect é uma outra ferramenta que ela fica rodando eu falo para ela assim olha fica vigiando para mim esse tópico quando tiver uma nova informação nele vai lá e faz um insert no banco de dados sem que você tenha que programar nada já pensou nisso ah mas qual banco de dados interessa se seja mongo se seja maisq POG seja qualquer coisa então a gente poderia apenas fazer um um select no pró no nosso próprio banco então você tem a informação chegando
aqui você pode fazer transformações consolidação extrair inteligência e depois migrar ela para outro lugar né Já pensou que ferramenta maravilhosa é essa pessoal da da pas F poderia até tô fazendo tanta propaganda que eu não tô nem recebendo royalties ou nada para isso mas assim é porque eh eh a ferr o uma ferramenta dessa na mão você tem que aproveitar de Fato né Você tem que usar esses recursos por isso que eh agregar um um cfca na sua infraestrutura tem que valer a pena né você tem que ter um sistema com eh um monte de
coisas acontecendo e etc e conseguir ter dados para poder extrair essas informações então por isso que eu uso assim muito bi e todas essas coisas com o kafica que ele vai recebendo tudo isso e você vai reagindo vai migrando vai transformando inclusive se você tiver uma transformação mais absurda você pode usar o kafica streams faz um programa Java aí você cria o stream cria as tables faz umas consolidações e etc e aí gera um novo tópico ou já gera um relatório através dela enfim tá agora eu quero mostrar aqui também porque no nosso evento que
a gente vai construir lá o Home Broker a plataforma de investimentos nós vamos ter eh publicação e consumo no cafc então eu trouxe aqui uma aplicação nodejs com o nest PR a gente ver como que ISO funciona então é estendendo uma material um pouco de ontem também então um projetinho muito simples para poder criar novas orders né então eu tenho um Controller aqui que eu envio informações e aí eu publico isso no Cica como que seria a publicação né com o próprio nest eh no caso aproveitando essa oportunidade do do nest em si a gente
tem que tomar cuidado com uma questão porque se você olha na documentação do nestjs coloca aqui Cica por caso do nest né ele vai recomendar uma biblioteca chamada de Kafka JS Cadê o Kafka JS Inclusive eu fiz um vídeo dela recente no canal esse aqui é página do AP kafica acho que não vai ter o link aqui inclusive o kafica é era mantido por um brasileiro a Lib é uma das mais usadas aí para poder lidar com o CFC no node ela tá depreciada né ele tem 9 meses aqui que teve a última movimentação tá
meio no Limbo Então e se você for usar eh Kafka com node Eu recomendo que você use a biblioteca da própria conflent eles aproveitaram essa deixa né e criaram uma Lib que tá bem bacana ela já tem aí quase 1000 commits e tá na versão 1.2 e essa Lib que eu estou utilizando aqui no final das contas Então ela tá instalada aqui no como dependência né aí para poder usar ela a Instância do Cica a gente tem que registrar o serviço dela aqui é um registro manual com nest né eu falo assim qual é o
tipo da do serviço que eu tô registrando é Instância do kafica que eu tô importando da alib e aqui a construção dela então eu Gero Uma Nova Instância dela CFC aí o que eles fizeram foi um um ter um contrato compatível para quem quer sair do cfca JS Porque você não sabe para onde vai e muitas empresas continuam utilizando ali então você consegue manter os mesmos contratos e etc então aqui a gente inicia uma Instância passando Qual que é o endereço do cafca que é o local host na porta 9094 então eu consigo pegar esse
serviço em qualquer lugar do nest e aqui é uma publicação então eu Gero um producer quando o meu módulo inicia eu pego a Instância e Gero um produtor esse produtor ele você tem que se conectar no Cica E aí eu estou publicando ó no tópico de orders uma mensagem sem aqui somente com v e aqui o Jon tipo aquele que eu estava fazendo né e aqui eu só um suo aí eu posso criar vou criar junto com vocês aqui vamos criar um consumidor orders consumer PTS Export CL orders consumer um consumer no nest tem que
ter um Controller aqui em cima n ele não vai ser algo de http só por conveniência mesmo então aqui eu crio um método handle que recebe a mensagem eu tenho que colocar aqui um payload é bom e coloco aqui um message que a mensagem que eu estou recebendo vou fazer aqui apenas um conso log nessa mensagem e aqui eu coloco Qual que é o tópico que eu quero consumir Então faço assim ó event pattern Qual que é o tópico Eh vamos voltar para cá a gente já tinha criado aqui o orders summary time então eu
passo ele aqui olha como que é legal bacana Aí agora esse consumer eu registro ele como um Controller aqui do lado do Controller mas ele é um consumidor vai ser uma Instância que vai ficar rodando para poder consumir as informações Bel então abr mais um termin na Perspectiva da web tem que entrar na pasta aí eu rodo aqui npm Run start Dev aí ele se conectou ali como um produtor e tá disponível né Deixa eu ver até se eu fiz alguma não fiz nenhuma outra rota Mas eu posso chegar aqui usar o meu api http
para poder fazer uma publicação a a nova publicação vamos ver se aqui no painel do Red pand a gente consegue ver mensag será que foi essa última aqui eu acredito que é que a gente tem esse ID aqui que eu coloi de inteiro né então consegui publicar no tpico então isso aqui já desencadeou uma outra janela para poder fazer a contabilização nova Na verdade eu devo ter errado alguma coisa do Price ali ó veio como zero aqui mas aí eu posso rodar a minha aplicação também na Perspectiva do Consumidor então aqui eu tenho um comando
que a gente não roda O http junto com o consumidor a gente separa então aqui é uma outra aplicação nest mas com uma perspectiva diferente aqui eu estou pedindo para iniciar a Instância de m service para poder passar a Instância do confluent Cica server né isso aqui inclusive é algo que eu criei O pessoal ainda do nest não tem integração direta né então isso aqui gera um consumidor aí eu passo ali Qual é a Instância do Cica então a gente faz assim ó npm start Dev aí eu passo entry file apontando pro meu arquivo que
é esse Command cica CMD tem que entrar na pasta do nest aqui ele já está se comportando como um consumidor então quando eu publicar uma mensagem pela ap rest aí ela sendo consumida aqui ó só que eu tenho que ver alguma coisa que eu cometi da de erro do preço né mas eu de um lado consumir do outro eu até criei algo aqui pra gente poder fazer um uma brincadeira eu criei um arquivo JavaScript comum que vai fazer 1 chamadas né aí dá para poder brincar e ver essas informações eu posso chegar aqui ó fazer
um node test orders aí para cada um desses ele vai publicando e a gente vai ver aqui ó o consumo acontecendo acho que a minha II que tava errada porque publicando por aqui tem alguma informação Será que eu tô passando errado preço e etc tá vendo Então a gente vai ver agora aqui nós estamos recebendo vários dados é só para poder fazer esse fechamento né ó já tô recebendo muitas mensagens então o meu consumidor vai consumindo eh as mensagens consolidadas né Não de orders eu tô consumindo as mensagens aqui aí eu poderia se eu quisesse
jogar num relatório e tudo mais a tem aquela né que eu falei do cfca Connect Então olha que ferramenta fantástica vai ser justamente isso que nós vamos usar a nossa imersão a gente não vai usar casb Tá mas e a gente vai usar a ferramenta Cica para poder fazer intermediação ali da criação das ordens de compra e venda de ativos aqui ele vai rodar e até 1000 né então ele vai rodar bastante coisa dá pra gente poder brincar depois eu verifico exatamente a Qual é a questão que tá envolvendo ali porque que tá dando Zerado
provavelmente é um é o preço tô colocando aqui Price e ah Total total né Ah entendi não mas pera aí ã eu não entendi uma coisa aqui é o total revenue não mas a questão é o envio do dado eu tô enviando aqui o o Price aqui também eu tô enviando Price o que interessa é que eu tô fazendo aqui ó agora eu não entendi por aqui eu tô pegando o price aqui do B né deixa eu parar a gente só D uma olhadinha aqui se eu não verificar exatamente o que é aqui ele tá
pera aí eu parei foi o consumidor não eu parei foi o aqui eu tenho deixa eu parar tudo aqui eu tô com casb aqui é o docker Api rest e aqui é o consumidor só publicar de novo para poder inspecionar publiquei agora vamos ver se ele se ele tá pegando esse 100 de fato lá então agora eu tenho um monte de mensagens aqui né Aí no caso é o offset 153 aí eu tenho o preço chegou certinho aqui aqui né PR tá certinho agora a questão é aqui no summary time Dea publicar mais uma vez
porque pelo menos agora aqui tá certo pode ficar tranquilo pessoal se vocês verem alguma coisa que eu não tô vendo aqui faltou o quantity não é porque o quantity eh deixa eu até confirmar aqui o quantity eu estou Pode ser que seja o quantity Ah eu é tá faltando a quantidade É isso mesmo que eu vou dar um um prêmio aí pra Larissa Noronha Ela matou a charada aqui ó Tá faltando a quantidade obviamente né se eu tô criando uma Order colocar aqui dessa forma pronto então vamos fazer aqui a chamada novamente eu tenho aqui
orders 154 eu tenho ali a quantidade dois Beleza então agora no summary time eu ten mais eventos aqui deixa eu colocar tem 81 já na verdade ó aí deu certo é Larissa matou a a charada pronto então eh aqui tem um exemplo né para você poder brincar enfim você pode fazer outras caries a partir do que eu mostrei aqui vou até fazer o seguinte já de uma vez eh eu já tenho essas caries aqui para poder ficar mais fácil eh essa aqui eu já tinha colocado Aquela primeira que eu executei essa aqui é a criação
do stream e aquela primeira que eu tinha executado que cria a tabela de forma geral eh uma outra coisa que a gente consegue fazer eh também vamos pegar aqui o casle DB client Cadê ele Tá aqui eu não preciso exatamente só na lá na interface né para poder ver a as os dados chegando eu posso fazer assim ó select asterisco from orders summary time emit ch agora ele vai mostrar aqui para mim os dados já existentes E à medida que eu Gero novos dados problem que ficou por causa aqui do tamanho da minha fonte não
ficou muito bom né mas à medida que eu vou fazendo aqui nov os dados ó tá vendo que ele vem mais um Vou colocar aqui agora eh 300 ele multiplicou né 2 x 3 e a partir dos sels aqui se eu fizer sem o emit Changes Ele É como se você tivesse fazendo o skl no banco de dados ele vai mostrar todas as linhas se você faz o emit Changes ele mostra todos e fica ali ouvindo lá do tópico para poder fazer a captura então com esses seles aqui também você pode fazer consultas específicas nas
informações né você consegue fazer muitas coisas com esse cas cle Deb Maravilha pessoal o Ricardo Espinoza me convenceu mudo o prazo de mudo o prazo de 3S dias para 2 horas eu não entendi Pessoal vocês têm alguma dúvida sobre isso que eu acabei de passar deixa eu voltar o meu nome aqui pra tela agora é o momento para dúvidas era isso que eu tinha para passar para vocês né uma live bem tranquila que usou um pouquinho de código né eu vou subir aqui pera aí deixa eu vou Vou compartilhar a tela vou subir agora para
vocês você pode brincar à vontade aí eh aqui vamos lá e deixa eu parar aqui meu terminal se tem alguma coisa para ignorar aqui a node mods já tá ignorada por aqui só tem que criar um arquivo B ignore pon History Barra fazer noit do nest volto para cá Git init Git P Git status ver se tem alguma coisa que não deveria não tá tudo ok então Git comit Men commit ch Rep Create Live eu vou colocar aqui ó Cica cas codeb aí agora só usufruir aí vou jogar aqui na tela tá aí no chat
já o código fonte para vocês poderem brincar à V né um belo material e assim pessoal a gente tem empresas muito grandes como a gente tá falando aí da Uber que é uma das empresas principais que utiliza CFC né você tem engenheiros que trabalham somente com CFC que ficam alocados na empresa somente para poder e manter essa ferramenta operando de forma saudável porque lidar com cluster de cá fica é algo complexo né então você pode dar uma olhada da terminando da Live vai no Linkedin e pesquisa vagas que envolvam a parte CFC e depois dá
uma olhada o quanto que essas vagas pagam né a gente não tá falando aqui exatamente para você poder ser uma pessoa especialista de cfca mas o ponto é que eh se você conhece uma ferramenta como essa conhece os princípios dela vai agregar valor paraa sua profissão e vai ser um diferencial enorme porque eh a maioria das pessoas do mercado nem conhecem não sabem como não sab sabem que existe não sabem esse conceito de streaming Então esse é um diferencial enorme para quem quer trabalhar em grandes empresas tem um um conhecimento como esse é um diferencial
enorme tava Ah pera aí eu não fiz o push né Pera aí Orange M agora eu fiz eu criei o repositório mas não foi Pegadinha do Malandro Pegadinha do Malandro pessoal Alguém tem mais alguma dúvida reservando esse tempinho aqui pra gente poder tirar mais outras dúvidas lembrando né que a nossa imersão começa na segunda se inscreva aí ó imersão ps.com.br mas também tem o link que você pode se inscrever através do link da descrição que tá aí no vídeo assim você não vai perder nada do que a gente vai construir na semana que vem nós
vamos usar o Cica vai est no meio ali da do nosso desenvolvimento o nest Vai publicar e consumir do Cica vai ter o gol publicando e consumindo do CFC também vai ser bem legal aggar essa ferramenta a gente vai usar é tudo com docker Não percam essa imersão Então se inscreva para ser notificado para você poder de fato ficar eh antenado ali com tudo que está acontecendo porque vai ter as aulas de manhã tem o as aulas à noite também que são as lives que a gente faz ao vivo com grandes referências do mercado de
tecnologia eh tem grupo no discord que você entra lá eh bate papo com o pessoal vai praticando o que a gente vai passando nas aulas obviamente vão acontecendo erros né E aí você vai resolvendo os seus erros vai ajudando outras pessoas também então não perca o nosso evento que começa dia 17 o Jorge Júnior tá falando que essa vai dar para assistir de boa de férias ó que legal isso aí aproveita o papel do skima registry o Marcos fez uma pergunta interessante aqui qual é o o papel do esima regist imagina seguinte que a gente
tem esse json que tá publicado aqui mas e se publicar sem esse Order ID se o Order ID na verdade vi um bulan aqui são coisas que podem acontecer né Isso é muito comum então o esquema registry faz com que você Gere um esquema pros dados para os dados então para quem publica você vai ter que respeitar esse esquema porque senão o tópico nem recebe essa informação o tópico fica ligado com esquema registry e para quem tá consumindo a informação você usa o esquema dos dados para poder formá-los porque você pode trabalhar com vários formatos
quando você publica ele normalmente não acaba ficando ele pode às vezes ser até um dado binário eh mesmo sendo um Jon que tá ali dentro do binário então para quem consome tendo o esquema dos dados você consegue convertê-lo pro formato que tem que ser ou seja eh né tem que ter O Event o evento que é string o other ID que é string O customer que é inteiro o product ID que é inteiro enfim né então a gente tem esse esquema para fazer validação para poder fazer serialização e diliza de dados isso é muito importante
a gente garante contratos e mais confiança nas mensagens née skima regist inclusive ele foi criado pela confluent Ele trabalha com K Ele trabalha com o CF Connect trabalha comf streams também são aquelas ferramentas que a gente vem falando aí beleza mais alguma dúvida pessoal também deixo as minhas redes sociais né Eh vou deixar aqui na verdade o @ argentin tá para quem quiser me seguir ó e exatamente aqui ó onde eu estou com o dedo @ Argentina Luiz Twitter github Instagram se você puder me seguir me ajuda a continuar o meu trabalho em breve já
tô prometendo isso mas eu vou cumprir que é criar o meu canal para poder fazer também a minha produção de conteúdo das coisas de tecnologia que eu gosto também então em breve vou convidá-los aí vocês vão ver esse anúncio mas é bom já ir anunciando pelo menos mas eu estou organizando porque estou organizando outras coisas para que eu consiga criar esse canal mas agradeço demais a presença de vocês né a gente ainda tem aí à e 15 pras 9 148 pessoas numa quarta-feira né então só tenho agradecer ao prestígio de todo mundo espero vocês aqui
nas próximas duas lives né a gente vai ter Live amanhã que vai ser com o Wesley sobre golang que é outra tecnologia que a gente vai usar na imersão e na sexta-feira para poder fechar esse esquenta nextjs e nós vamos usar websockets também que é outro assunto que a gente tem a gente tem tanta coisa nessa imersão que não tem como nem lembrar tudo de cabeça né então tem mais duas lives antes do dia 17 para começar o evento Então lembrando né deixa o like como o lorivan tá falando ali nos ajuda demais tá deixa
até olhar se você não deixar um like antes de acabar a Live você vai receber um streaming de puxão de orelha quando você estiver dormindo 3 horas da madrugada ó nós temos 182 likes e 149 de pessoas assistindo Poxa pessoal tenho certeza que muita gente aí não deu like nos ajude tá o YouTube entende que as pessoas estão gostando e expande esse mais esse conteúdo para todo mundo né e a gente quer fazer esse canal full pych crescer a gente já tá chegando aí daqui a pouco a 200.000 pessoas já estamos em 165 a gente
quer continuar levando esse conteúdo GR gro de qualidade toda semana a gente tem conteúdo aqui na na full cycon Mesmo que não seja eventos a gente publica vídeos aí de tudo enquanto e quanto ar não sei se vocês já ouviram essa expressão né de pelo menos aqui em Minas é onde eu estou o pessoal fala bastante tá Pelo visto então não temos mais dúvidas Então agradeço vocês mais uma vez né bom descanso para todo mundo e na sexta-feira vocês me encontram aqui novamente amanhã é com Wesley inclusive hoje hoje eu já terminei de gravar o
primeiro vídeo a primeira aula que vai pro ar na segunda-feira E o restante da semana aí vou terminar de gravar as outras aulas também então grande abraço para todo mundo até mais pessoal tchau
Related Videos
Golang em 1h: Saia com uma aplicação completa
1:32:35
Golang em 1h: Saia com uma aplicação completa
Full Cycle
1,907 views
Nest.js: Comunicação em tempo real com Websockets
2:44:00
Nest.js: Comunicação em tempo real com Web...
Full Cycle
5,415 views
SQL Saia do ZERO em APENAS UMA AULA
22:56
SQL Saia do ZERO em APENAS UMA AULA
Jerry Strazzeri
90,535 views
Docker do zero em uma hora
1:30:41
Docker do zero em uma hora
Full Cycle
5,810 views
Import One Million Rows To The Database (PHP/Laravel)
48:40
Import One Million Rows To The Database (P...
Laravel
9,950 views
Golang: Desenvolvimento de APIs Multithreading
1:12:20
Golang: Desenvolvimento de APIs Multithrea...
Full Cycle
3,666 views
How to Start Coding | Programming for Beginners | Learn Coding | Intellipaat
33:08
How to Start Coding | Programming for Begi...
Intellipaat
9,486,020 views
Aprenda Power BI do zero em apenas UMA AULA!! Atualizado 2024
49:20
Aprenda Power BI do zero em apenas UMA AUL...
Empowerdata
564,707 views
Curso Gratuito N8N para Iniciantes - Crie um Agente IA do ZERO
31:47
Curso Gratuito N8N para Iniciantes - Crie ...
Renato Asse - Sem Codar
23,929 views
Live Coding e Clean Architecture - Part. Rodrigo Branas
2:43:51
Live Coding e Clean Architecture - Part. R...
Full Cycle
8,169 views
Minicurso de SQL (Saia do Zero em 1 Hora)
1:00:46
Minicurso de SQL (Saia do Zero em 1 Hora)
Código Fonte TV
13,794 views
[Imersão Power BI] AULA 1 - Começando do zero no Power BI: Dashboard Financeiro
2:40:35
[Imersão Power BI] AULA 1 - Começando do z...
Karine Lago
52,907 views
N8N: 6 exemplos práticos (IA & Chatbots) c/ Hugo Autotic
54:02
N8N: 6 exemplos práticos (IA & Chatbots) c...
Renato Asse - Sem Codar
54,181 views
Use DeepSeek de Graça no VS Code (Testamos)
15:37
Use DeepSeek de Graça no VS Code (Testamos)
Código Fonte TV
105,776 views
Curso Básico Power BI 2025 - Aula 1 - Introdução ao Power BI
29:41
Curso Básico Power BI 2025 - Aula 1 - Intr...
Hashtag Treinamentos
21,077 views
Ansible 101 - Episode 1 - Introduction to Ansible
1:03:43
Ansible 101 - Episode 1 - Introduction to ...
Jeff Geerling
657,668 views
🚨 Elon gets the bad news he's FEARED
14:09
🚨 Elon gets the bad news he's FEARED
Brian Tyler Cohen
866,584 views
Python do ZERO ao JÚNIOR - Os vendedores de curso CHORAM | Rápido & Sem enrolação
29:42
Python do ZERO ao JÚNIOR - Os vendedores d...
Programador Python
568,816 views
Curso de SQL e MySQL fundamental | Aprenda SQL em 1 hora
53:14
Curso de SQL e MySQL fundamental | Aprenda...
Matheus Battisti - Hora de Codar
112,578 views
Curso SQL Completo 2024 [Iniciantes] + Desafios + Muita Prática
3:50:08
Curso SQL Completo 2024 [Iniciantes] + Des...
Dev Aprender | Jhonatan de Souza
1,511,960 views
Copyright © 2025. Made with ♥ in London by YTScribe.com