Arquitetura Event-Driven – Hipsters Ponto Tech #485


Resumo

O episódio explora a arquitetura orientada a eventos, começando com uma explicação conceitual de Vini, que a compara a um sistema de campainha: há um produtor de eventos, um consumidor e um broker intermediário. A discussão avança para os casos de uso apropriados, como sistemas de e-commerce que precisam processar múltiplos estados de pedido de forma desacoplada e escalável, especialmente em cenários de pico como a Black Friday.

Os participantes debatem quando adotar essa abordagem, alertando contra a adoção por hype. Eles propõem um roteiro de perguntas para validar a necessidade: múltiplos serviços reagem ao mesmo evento? É aceitável que a resposta não seja síncrona? É necessário desacoplar componentes? A equipe e a infraestrutura estão preparadas para lidar com rastreamento, versionamento e monitoramento de eventos? Conceitos como idempotência e consistência eventual são destacados como desafios inerentes.

A conversa então se volta para as tecnologias disponíveis. RabbitMQ é apresentado como uma opção clássica e mais simples para começar, ideal para filas de tarefas. Kafka é recomendado para cenários de streaming com alto throughput, como processamento de áudio em tempo real. Outras ferramentas como NATS, AWS SQS, Google Pub/Sub e Azure Event Grid também são mencionadas. Estratégias de resiliência, como DLQ (Dead Letter Queue) e padrões como Saga, são discutidas para lidar com falhas.

Finalmente, o episódio aborda considerações sobre organização de código (mencionando Clean Architecture, DDD, CQRS e Vertical Slice), a importância de entender os fundamentos antes das ferramentas, e dicas para profissionais em diferentes níveis de carreira que desejam se aprofundar no tema. A conclusão reforça que a arquitetura orientada a eventos é poderosa, mas traz complexidades significativas e não é uma solução universal.


Indicações

Cursos

  • Pós-Tec (Arquitetura de Software) — Thiago Adriano menciona que coordena uma pós-graduação que aborda desde Domain Driven Design, Vertical Slice, arquitetura hexagonal até deploys e escala.
  • Pós-Tec (IA) — Thiago também cita uma pós-graduação em IA que ensina fundamentos como o que são modelos de IA, virtualização, RAG (Retrieval-Augmented Generation) e como trabalhar com essas ferramentas.

Ferramentas

  • RabbitMQ — Apresentado como uma ferramenta clássica, simples e completa para começar com mensageria, ideal para aprender e para ambientes corporativos. Oferece suporte a diferentes tipos de exchange (Fanout, Direct, Topic).
  • Apache Kafka — Recomendado para cenários de streaming com alto throughput de milhões de eventos em tempo real, como em plataformas de áudio ou processamento contínuo de dados.
  • NATS — Mencionado por Vini como uma ferramenta que ele conheceu recentemente, também com capacidades de streaming.

Livros

  • Livro do Thiago Adriano (Casa do Código) — Thiago menciona que está finalizando um livro sobre arquitetura de software que será publicado pela Casa do Código.

Linha do Tempo

  • 00:02:36Conceito de Arquitetura Orientada a Eventos — Vini explica o conceito usando a analogia da campainha: alguém produz um evento (tocar a campainha), um broker intermediário (a campainha) notifica, e um consumidor reage (ir atender). Ele destaca as três partes: produtor, consumidor e broker. A ideia é um paradigma assíncrono, diferente do modelo síncrono request-response.
  • 00:05:09Quando usar Arquitetura Orientada a Eventos — Felipe inicia a discussão sobre casos de uso, citando sistemas de e-commerce como exemplo clássico, onde um pedido passa por vários estados (criado, pago, em separação) e múltiplos serviços precisam reagir de forma desacoplada e escalável. A arquitetura é útil para quebrar responsabilidades em capacidades de negócio isoladas.
  • 00:09:23Roteiro para validar a necessidade de Event-Driven — Vini propõe um mini roteiro de perguntas para evitar adotar a arquitetura por hype: múltiplos serviços reagem ao mesmo evento? É aceitável que não seja síncrono? É necessário desacoplar as peças? A equipe está pronta para rastrear, versionar e monitorar eventos? Será que um REST não resolveria? A adoção é um comprometimento alto.
  • 00:13:29Desafios e Conceitos Avançados: Idempotência — Os participantes discutem conceitos que surgem com a arquitetura orientada a eventos, como a idempotência. Eles explicam que uma operação idempotente pode ser executada várias vezes com o mesmo resultado final (ex: um ‘like’ em rede social), enquanto operações não idempotentes (ex: adicionar ao carrinho) acumulam. Isso ilustra a mudança de pensamento necessária.
  • 00:16:27Panorama de Tecnologias: RabbitMQ vs. Kafka — André pede um panorama das tecnologias. Thiago defende o RabbitMQ como uma opção clássica, completa e mais simples para começar e ensinar, com suporte a diferentes tipos de exchange (Fanout, Direct, Topic). Pathy e Felipe mencionam o Kafka como ideal para cenários de streaming com alto throughput de milhões de eventos, como em plataformas de áudio.
  • 00:18:48Estratégias de Resiliência: DLQ e Retry — André pergunta o que acontece se o consumidor de uma fila parar. Thiago explica estratégias básicas como retry (tentar novamente algumas vezes) e DLQ (Dead Letter Queue), para onde mensagens com falha são enviadas para reprocessamento ou análise. Ele cita a importância dessas estratégias em sistemas críticos, como os de saúde.
  • 00:25:18Debate: Monolito escala? — Thiago retoma sua provocação inicial: ‘Monolito escala?‘. Ele relata sua experiência na TV Bandeirantes, onde um monolito com PHP escalava, mas com o custo de adicionar mais máquinas (escalar para cima). Ele argumenta que, para sistemas com poucas funcionalidades e uma equipe pequena, um monolito pode ser mais fácil de manter do que vários microserviços.
  • 00:27:27Organização de Código em Event-Driven — Vini levanta a questão de como organizar o código nesse novo paradigma, mencionando uma ‘sopa de letrinhas’ de padrões: CQRS, DDD, Saga, Arquitetura Hexagonal. Thiago comenta que vê muito Clean Architecture nas empresas pela facilidade de manutenção. Pathy defende começar pelo DDD para colocar o negócio no centro antes de escolher a organização do código.
  • 00:31:27Como estudar e se preparar para Event-Driven — André pergunta como profissionais podem estudar e treinar arquitetura orientada a eventos. Vini recomenda começar pelo RabbitMQ em ambiente local para brincar com produção e consumo. Para níveis mais sênior, é crucial entender quando usar e debater a decisão, não apenas a tecnologia. Pathy e Thiago enfatizam estudar fundamentos (Pub/Sub, eventos vs. comandos) e fazer provas de conceito.
  • 00:42:52Considerações Finais e Segurança — No fechamento, os participantes reforçam que Event-Driven não é uma solução divina para todos os problemas. Thiago alerta para desafios adicionais como autenticação, autorização e ataques de negação de serviço (DoS) em filas públicas. A segurança no tráfego de dados é destacada como imprescindível. Eles sugerem um próximo papo para discutir os problemas após a escolha da arquitetura.

Dados do Episódio

  • Podcast: Hipsters Ponto Tech
  • Autor: Alura - Hipsters Network
  • Categoria: Technology Science Education
  • Publicado: 2025-10-14T03:06:02Z
  • Duração: 00:44:28

Referências


Dados do Podcast


Transcrição

[00:00:00] RIPSTERS.TEC, o podcast de tecnologia e outras modinhas.

[00:00:13] Salve, ouvintes do RIPSTERS.TEC!

[00:00:15] Está no ar mais um episódio do seu podcast favorito.

[00:00:19] Eu sou o André Davi, sou o seu host mais uma vez.

[00:00:23] E hoje é um dia da gente fazer aquele pensamento que ajuda a dar alguns saltos

[00:00:27] na forma como a gente aborda a tecnologia.

[00:00:30] A gente vai falar novamente sobre arquitetura,

[00:00:32] mas dessa vez a arquitetura orientada a eventos.

[00:00:35] Quando isso é necessário? O que muda?

[00:00:38] Por que tudo aquilo que você aprendeu até agora

[00:00:40] talvez precise ser readequado para esse novo formato?

[00:00:45] Vamos ver quem está comigo nesse papo.

[00:00:54] E quem está aqui comigo hoje é ele, Vini, né?

[00:00:59] André Davi, meu grande amigo, o Tech Lead.

[00:01:01] Tudo bem com você, Vini?

[00:01:02] Tudo bem, André.

[00:01:03] E para mim, orientação a evento é quando alguém toca a campainha e eu vou lá ver quem é.

[00:01:08] Coisa maravilhosa.

[00:01:09] Já começamos.

[00:01:10] Eu quero ver que tipo de bingo a gente vai marcar hoje.

[00:01:12] Mas antes, deixa eu apresentar o resto da galera.

[00:01:15] O Felipe, o famoso Cachoeira, lá do Luísa Labs, é Senior Staff Software Engineer.

[00:01:21] Tudo bem contigo, Felipe?

[00:01:22] Tudo certo aí, André, Vinícius, Thiago.

[00:01:26] Bora aí falar de arquitetura de eventos aí.

[00:01:28] Pô, sensacional.

[00:01:30] E quem volta aqui ao Hipsters para ajudar a gente mais uma vez a entender esse mundo por trás dos sistemas

[00:01:36] é ela, Pathy, que é Tech Lead.

[00:01:39] Tudo bem com você, Pathy?

[00:01:40] Tudo ótimo.

[00:01:41] Eu gosto da liberdade do caos ao mesmo tempo.

[00:01:44] É um prazer estar aqui para falar de Event to Driven.

[00:01:47] Liberdade do caos, gostei.

[00:01:49] E quem fecha aqui o nosso time de especialistas é ele, Thiago Adriano, que é coordenador da Pós-Tec.

[00:01:56] Tudo bem com você, Thiago?

[00:01:57] Opa, tudo bem, pessoal?

[00:01:59] Muito obrigado aí pela oportunidade.

[00:02:01] Já fica aquela dúvida.

[00:02:02] Monolito escala?

[00:02:03] Ih, rapaz!

[00:02:05] Galera, já deu para perceber aqui que o assunto tem aí vários espinhos, várias controvérsias e várias coisas legais.

[00:02:13] Mas para a gente começar contextualizando esse papo.

[00:02:16] Outro dia eu falei para o Vini.

[00:02:17] Eu falei, Vini, vamos falar sobre mensageria.

[00:02:21] E o Vini falou, cara, vamos falar sobre arquitetura orientada a eventos como um todo.

[00:02:25] Porque a gente já pode abordar.

[00:02:27] É necessário quando não é.

[00:02:29] Então, como sempre, eu vou pedir aquele resumão, Vini.

[00:02:32] O que é arquitetura orientada a eventos, a grosso modo?

[00:02:36] Boa.

[00:02:36] Vale a pena a gente pensar que é um paradigma diferente.

[00:02:40] Então, por exemplo, a gente consegue fazer uma analogia a código síncrono ou assíncrono.

[00:02:45] Então, se a gente tem um código síncrono, alguma coisa que a gente está esperando ali executar.

[00:02:49] A gente só vai para a linha de baixo quando termina.

[00:02:52] E o assíncrono, que a gente não sabe quando vai terminar.

[00:02:54] Quando acontece, a gente vai lá e faz alguma coisa.

[00:02:57] Certo?

[00:02:57] Então, a ideia do Event Driven é mais ou menos isso.

[00:03:00] Ao invés de a gente ter uma requisição e uma resposta, a gente tem três partes.

[00:03:05] Vai.

[00:03:05] A gente tem quem está produzindo o evento.

[00:03:09] A gente tem quem vai consumir esse evento.

[00:03:12] Então, se a gente voltar lá no exemplo da campainha,

[00:03:15] alguém, uma entrega chegou para mim e alguém foi lá e tocou a porta.

[00:03:19] Essa pessoa produziu um evento.

[00:03:21] E eu consumi esse evento.

[00:03:22] Eu estava lá tomando café, fiquei ali escutando a campainha.

[00:03:25] A campainha tocou e eu fui lá reagir.

[00:03:27] E a terceira parte é quem faz o meio.

[00:03:30] É a campainha, é o nosso broker.

[00:03:32] Ou seja, esse broker é esse intermediário entre os interessados.

[00:03:37] Então, resumindo, três partes.

[00:03:39] A gente tem alguém que produz.

[00:03:41] A gente tem alguém que consome.

[00:03:42] E a gente tem esse broker, esse intermediário aí, que ele é só o caminho, certo?

[00:03:48] Ele é a campainha.

[00:03:49] Ele só vai avisar que aconteceu alguma coisa e tudo mais.

[00:03:51] Isso se desdobra muito, porque tem várias formas de fazer isso.

[00:03:56] Mas esse…

[00:03:57] Essencialmente, a gente tem mais ou menos isso, independente da tecnologia que a gente use.

[00:04:02] Pode ser lá um Kafka, um RabbitMQ, tem lá produtos da AWS para isso,

[00:04:07] da Asia para isso, do Google, EventBridge, PubSub.

[00:04:12] Enfim, tem muita coisa.

[00:04:14] Tem um que eu conheci recentemente no último projeto que eu trabalhei,

[00:04:16] que se chama NETS, N-A-T-S.

[00:04:19] Então, enfim, são várias ferramentas diferentes para a gente fazer isso.

[00:04:22] Alguém produz, alguém consome e alguém intermedia.

[00:04:27] Então, resumidamente, esse é o conceito.

[00:04:30] Pô, beleza.

[00:04:30] A gente tem aqui o conceito claro.

[00:04:32] Eu quero jogar a bola para o resto da galera no seguinte.

[00:04:34] Quando você se vê diante de uma situação em que talvez a resposta para a pergunta

[00:04:39] qual arquitetura eu uso é a orientada a eventos.

[00:04:43] E só para deixar ainda mais explícito para os ouvintes que estão acompanhando a gente,

[00:04:47] ali, de acordo com a explicação do Vini, então,

[00:04:49] uma coisa é usar uma API REST, por exemplo,

[00:04:52] que eu vou fazer uma chamada e o meu programa vai ficar parado

[00:04:55] esperando aquela chamada ser resolvida.

[00:04:57] Até eu receber a minha resposta.

[00:04:59] O Vini e a galera estão trazendo para a gente a ideia, então,

[00:05:01] de não ficar esperando, de ter coisas assíncronas.

[00:05:05] Então, Felipe, Pathy, Tiago,

[00:05:06] quando que a gente vai usar esse tipo de abordagem?

[00:05:09] Ah, eu acho que, assim, primeiro, né,

[00:05:11] a gente precisa entender o que a gente quer resolver.

[00:05:13] Qual é a dor que a gente está sentindo ali?

[00:05:17] O que a gente quer resolver?

[00:05:18] Isso é independente de qualquer coisa, né?

[00:05:21] Mas eu acho que é um estilo arquitetural muito útil, né?

[00:05:25] Se você quer, por exemplo,

[00:05:27] seguir uma estratégia de componentes desacoplados, né?

[00:05:31] E aí eu posso citar um exemplo clássico aqui, né,

[00:05:33] de um cenário de e-commerce, por exemplo,

[00:05:35] onde você faz uma compra, um pedido é gerado,

[00:05:38] ele passa por vários estados gerais,

[00:05:40] como pedido criado, pendente de pagamento,

[00:05:42] pedido pago, em separação, né?

[00:05:44] Então, se você quer que isso tenha uma escala independente,

[00:05:47] para ter mais desempenho,

[00:05:48] e não necessariamente isso ser respondido na hora ali, né?

[00:05:52] Mas em algum determinado momento,

[00:05:54] as aplicações em volta dessa estratégia de arquitetura,

[00:05:56] elas vão começar a reagir a esses eventos

[00:05:59] até que o ciclo, ele em total, chegue no fim, né?

[00:06:02] Essa é uma excelente razão, um caso de uso, né?

[00:06:06] Para você poder estar utilizando essa estratégia, né?

[00:06:08] Eu escalo apenas o que é demandado, né?

[00:06:11] E sem impactar os demais componentes.

[00:06:13] Isso é amplamente utilizado, né?

[00:06:15] Quando a gente quer quebrar essas responsabilidades, né?

[00:06:18] De uma aplicação, por exemplo, monolítica, né?

[00:06:20] Em capabilities isoladas, né?

[00:06:22] Em capacidades de negócios isoladas.

[00:06:24] Então, não só…

[00:06:26] Especificamente, né?

[00:06:28] Esse caso de uso, né?

[00:06:29] Tem outros, por exemplo,

[00:06:30] ah, eu não quero usar REST,

[00:06:31] eu quero simplesmente produzir esses eventos em algum momento

[00:06:34] e eu vou ser notificado.

[00:06:36] Não necessariamente tem que ser voltado a microserviços, né?

[00:06:39] Mas é muito orientado a utilizar em uma arquitetura distribuída.

[00:06:43] Pegando esse gancho,

[00:06:45] para aquela pessoa que está começando com o Event Driven,

[00:06:48] isso já aconteceu comigo.

[00:06:50] Eu faço algumas perguntas que me guiam,

[00:06:52] porque muitas vezes o nosso coração quer usar,

[00:06:56] utilizar o hype, né?

[00:06:58] Para testar, mas…

[00:07:00] Se tratando de uma empresa que precisa gerar resultados,

[00:07:04] aí a gente começa a fazer perguntas de negócio mesmo, assim.

[00:07:08] Tipo, ah, um evento, ele precisa acionar, né?

[00:07:11] Várias coisas diferentes.

[00:07:13] Dá para essas coisas rodarem depois,

[00:07:15] sem travar a resposta?

[00:07:17] E sobre escala e picos?

[00:07:19] A gente está falando de um e-commerce, né?

[00:07:21] Que pode ter, assim,

[00:07:23] picos gigantescos na Black Friday,

[00:07:25] ou em…

[00:07:26] Ou quando tem campanhas de marketing, né?

[00:07:29] A gente vai sofrer rajadas de tráfico?

[00:07:31] Uma fila ajudaria, né?

[00:07:33] A segurar isso?

[00:07:34] A gente tem tarefas caras, lentas?

[00:07:36] E aí, você vai respondendo, muitas vezes,

[00:07:39] o time de negócio ali, o arquiteto,

[00:07:42] ele começa a fazer essas perguntas

[00:07:44] junto ao time de negócio,

[00:07:47] que acaba que direciona essas decisões arquiteturais.

[00:07:52] Eu sempre gosto de passar para os alunos,

[00:07:53] até nas empresas que eu passei, consultoria, tudo.

[00:07:55] A gente tem que entender primeiro qual que é o problema.

[00:07:58] Toda tecnologia, ela veio para resolver algum problema.

[00:08:01] Às vezes, a gente cria um problema para a gente

[00:08:03] e a gente não deveria ter testado aquilo.

[00:08:06] Na questão de event-driven, de arquitetura,

[00:08:09] a gente tem que ver qual que é o budget do projeto,

[00:08:11] qual que é o time to market do projeto.

[00:08:13] Realmente, eu preciso…

[00:08:15] Por exemplo, pensando aqui agora com vocês,

[00:08:17] a gente está falando aqui de um sistema

[00:08:20] para medicina ali para um hospital.

[00:08:23] A gente fala, não, tem que ser algo rápido,

[00:08:24] tem que ser escalável, então eu coloco event-driven por isso.

[00:08:27] Só que ele tem milhões de aquisições,

[00:08:29] a fila processa tudo e tal.

[00:08:31] Entrou uma pessoa que ela não tem cadastro,

[00:08:33] no onboarding.

[00:08:34] Entrou no onboarding, disparou para a fila,

[00:08:36] só que esse cara, ele tem que entrar direto para o TI.

[00:08:38] Só que ele teria que passar pela fila

[00:08:40] por um outro fluxo.

[00:08:41] Como que a gente vai colocar uma prioridade para ele?

[00:08:44] Como que a gente vai?

[00:08:45] Então, a gente tem que ver qual que é o caso de uso,

[00:08:47] qual que é o problema.

[00:08:48] Será que o monolito ou algo que,

[00:08:50] como a gente tinha antigamente ali,

[00:08:52] um cadastro service,

[00:08:54] ou um cadastro repositor que já inserisse ali na hora,

[00:08:56] já não resolveria,

[00:08:58] a gente também tem que ver,

[00:08:59] que é um pouco do que a Pathy falou,

[00:09:00] dessa questão de ter o hype,

[00:09:02] mas ver qual que é o real problema.

[00:09:04] Por que o event-driven, ele ajuda?

[00:09:06] Ele ajuda a gente tirar o autoacoplamento,

[00:09:08] mas, independente da regra de negócios,

[00:09:10] será que não é bom ter um autoacoplamento?

[00:09:12] Será que a parte do SUS,

[00:09:13] porque tem a parte do onboarding,

[00:09:15] tem a parte da UTI,

[00:09:16] será que elas não têm que ser acopladas?

[00:09:18] Então, a gente tem que entender e estudar

[00:09:20] para ver onde a gente vai colocar.

[00:09:22] Mas só um,

[00:09:23] vamos ver,

[00:09:24] para a gente já começar a esquentar e brincar.

[00:09:26] Eu acho que é muito fácil

[00:09:28] a gente cair nessa armadilha pelo hype.

[00:09:31] Então, tem um mini roteiro que eu sempre penso,

[00:09:34] na hora de entender se isso faz sentido ou não.

[00:09:36] Então, por exemplo,

[00:09:37] a primeira coisa que a gente pode se perguntar é,

[00:09:39] se eu preciso,

[00:09:41] se eu tenho vários serviços

[00:09:44] que reagem ao mesmo evento.

[00:09:46] Então, por exemplo,

[00:09:47] se a gente pensar em um processamento de pagamento,

[00:09:50] alguém foi lá e passou o cartão.

[00:09:52] Eu preciso que múltiplos serviços

[00:09:54] reajam a esse evento?

[00:09:55] Talvez sim.

[00:09:56] Será que eu vou rodar um antifraude?

[00:09:58] Será que eu vou ter um outro serviço

[00:09:59] que vai fazer um check se a pessoa tem saldo?

[00:10:02] E por aí vai.

[00:10:03] Então, ou seja,

[00:10:04] talvez você tenha múltiplos serviços

[00:10:06] que vão reagir ao mesmo evento.

[00:10:08] Uma outra coisa também que a gente pode se perguntar,

[00:10:10] está tranquilo se isso não for síncrono?

[00:10:13] Porque assim,

[00:10:14] quando a gente está falando de evento,

[00:10:15] a gente pega alguma coisa que aconteceu

[00:10:17] e coloca em uma fila,

[00:10:18] que já saiu aí no bingo.

[00:10:20] Então, se ela está em uma fila,

[00:10:21] ela está lá esperando ser processada.

[00:10:23] Então, está tudo bem isso não ser assíncrono?

[00:10:26] Está tudo bem quem emitiu o evento

[00:10:28] não esperar para saber o que vai acontecer com ele?

[00:10:31] Isso é essencial.

[00:10:32] Se não está tudo bem,

[00:10:33] talvez um event de driven aqui

[00:10:35] não seja a melhor saída.

[00:10:38] E por aí vai.

[00:10:39] Será que isso aqui vai crescer

[00:10:41] e eu preciso desacoplar essas peças?

[00:10:44] Tiago já falou disso.

[00:10:46] Então, será que eu preciso desse desacoplamento aqui?

[00:10:50] E isso de fato está desacoplado

[00:10:52] e não é um monolito disfarçado?

[00:10:54] Então assim,

[00:10:55] tem que existir esse desacoplamento.

[00:10:58] E eu acho que assim,

[00:10:59] a pergunta principal,

[00:11:00] será que eu estou pronto para lidar com isso?

[00:11:02] Rastrear evento,

[00:11:03] versionar evento,

[00:11:04] monitorar evento,

[00:11:06] o meu time está pronto para lidar com isso?

[00:11:08] A minha infra está pronta para lidar com isso?

[00:11:10] Porque a gente não está falando mais do request e response.

[00:11:13] A gente está falando para evento.

[00:11:15] E no final é,

[00:11:16] será que eu não estou só inventando moda?

[00:11:18] Será que se eu botar um rest,

[00:11:19] isso aqui não resolve?

[00:11:20] Então assim,

[00:11:21] vale refletir antes de cair,

[00:11:23] porque não é uma coisa trivial

[00:11:25] de se mudar depois que está rodando.

[00:11:27] É um commitment,

[00:11:28] é um comprometimento que a gente tem

[00:11:31] que é muito alto,

[00:11:32] se a gente está se comprometendo verdadeiramente com aquilo.

[00:11:35] Então,

[00:11:36] vale a pena a gente parar e analisar,

[00:11:37] será que é isso aqui mesmo?

[00:11:39] Aí se a resposta final for sim,

[00:11:41] você faz check, check, check, check, check.

[00:11:43] Beleza, então vamos lá.

[00:11:44] Vamos para cima.

[00:11:45] E aí sim,

[00:11:46] aí a gente pode passar,

[00:11:48] levar a nossa conversa para o próximo nível,

[00:11:50] que é,

[00:11:51] está decidido que a gente vai usar Event Driven.

[00:11:53] Mas o que a gente vai usar?

[00:11:54] Kafka?

[00:11:55] RabbitMQ?

[00:11:56] É o que?

[00:11:57] Nets?

[00:11:58] É o que?

[00:11:59] É um SQS da vida?

[00:12:00] É um PubSub que até o Redis faz?

[00:12:02] O que a gente vai usar?

[00:12:03] Aí a gente consegue continuar essa conversa.

[00:12:05] Olha,

[00:12:06] eu vou ser provocativa,

[00:12:08] porque eu escuto todo dia,

[00:12:11] porque eu uso Event Driven,

[00:12:13] meus serviços são desacoplados,

[00:12:16] baixo acoplamento.

[00:12:17] Mas,

[00:12:18] olha,

[00:12:19] eu já tive essa experiência.

[00:12:20] Aí eu fui perguntar para entender mais.

[00:12:23] Mas como que tem funcionado aí do seu lado?

[00:12:26] E no final,

[00:12:27] só estava sendo,

[00:12:28] o acoplamento estava sendo empurrado de um lado para o outro.

[00:12:31] Event Driven,

[00:12:32] ele reduz o acoplamento.

[00:12:34] Ok,

[00:12:35] se você souber implementar isso, certo.

[00:12:37] Mas assim,

[00:12:38] aí você empurra o acoplamento de um lado para o outro,

[00:12:41] como eu disse.

[00:12:42] Aí o consumidor ainda depende de outro serviço para responder.

[00:12:46] Entende?

[00:12:47] Event Driven,

[00:12:49] desacoplamento,

[00:12:50] essas palavras bonitas,

[00:12:51] elas existem,

[00:12:52] mas a gente precisa,

[00:12:54] primeiro,

[00:12:55] entendeu?

[00:12:56] O que que são,

[00:12:57] o que que é desacoplamento?

[00:12:58] Muitos falam,

[00:12:59] ah,

[00:13:00] vou usar Event Driven,

[00:13:01] porque eu preciso de serviços desacoplados,

[00:13:03] preciso escalar,

[00:13:04] certo?

[00:13:05] E muitas vezes,

[00:13:06] os profissionais que escolhem,

[00:13:08] eles acabam que nem conseguem fazer o básico,

[00:13:12] que é,

[00:13:13] não entende o que é escalar,

[00:13:14] e não entende o básico do que é um,

[00:13:16] são serviços desacoplados.

[00:13:19] E aqui,

[00:13:20] a gente pode linkar com isso,

[00:13:22] para fazer aqui o bingo,

[00:13:23] que eu vou roubar para bater aqui a minha cartela,

[00:13:25] que a gente começa a falar de coisas do,

[00:13:27] por exemplo,

[00:13:28] idempotência.

[00:13:29] A gente começa a falar difícil aqui,

[00:13:30] para a mamãe ficar orgulhosa.

[00:13:31] Rapaz,

[00:13:32] essa aí,

[00:13:33] nem em inglês,

[00:13:34] nem em português,

[00:13:35] essa é complicada.

[00:13:36] Então,

[00:13:37] porque assim,

[00:13:38] qual que é o rolê,

[00:13:39] dessa idempotência?

[00:13:41] A gente garantir,

[00:13:43] que a operação,

[00:13:44] ela é indepotente,

[00:13:45] ou seja,

[00:13:46] ela pode executar várias vezes,

[00:13:47] e o resultado final,

[00:13:48] vai ser sempre o mesmo.

[00:13:49] Então,

[00:13:50] o que que é uma operação,

[00:13:51] por exemplo,

[00:13:52] que ela é idempotente?

[00:13:53] O like,

[00:13:54] é lá na rede social.

[00:13:55] Se eu posso dar,

[00:13:56] eu posso apertar no like,

[00:13:57] várias vezes,

[00:13:58] e só vai ter uma curtida minha,

[00:13:59] ou vai fazer um toggle.

[00:14:01] Então,

[00:14:02] eu não consigo incrementar,

[00:14:03] para deixar uma peça lá,

[00:14:05] que foi postada com vários likes,

[00:14:07] tem que ser mesmo,

[00:14:08] cada usuário único.

[00:14:09] Mas,

[00:14:10] se eu clicar em adicionar o carrinho,

[00:14:11] várias vezes em um produto,

[00:14:12] ele vai adicionar várias vezes.

[00:14:13] Então,

[00:14:14] ele é o oposto.

[00:14:15] Então,

[00:14:16] olha só o tipo de coisa,

[00:14:17] que a gente tem que se preocupar,

[00:14:18] quando a gente está falando de evento.

[00:14:20] É um mar,

[00:14:21] é uma seara,

[00:14:22] totalmente diferente,

[00:14:23] do que aquela tradicional,

[00:14:25] request,

[00:14:26] response.

[00:14:27] Isso aqui,

[00:14:28] vai muito além,

[00:14:29] daquela briga,

[00:14:30] de se a gente vai usar,

[00:14:31] REST ou GraphQL.

[00:14:32] É um pensamento,

[00:14:33] totalmente diferente.

[00:14:34] Eu acho que,

[00:14:35] com grandes poderes,

[00:14:36] vem grandes responsabilidades.

[00:14:37] Então,

[00:14:38] as responsabilidades,

[00:14:39] são os trade-offs,

[00:14:40] e os desafios,

[00:14:41] que você vai ter,

[00:14:42] utilizando essa abordagem.

[00:14:43] Então,

[00:14:44] um grande ponto,

[00:14:45] de você utilizar,

[00:14:46] Limit Driven,

[00:14:47] você vai ter muito poder.

[00:14:48] Você vai ter muitas opções,

[00:14:49] casos de uso.

[00:14:50] Mas,

[00:14:51] tem sempre o bônus.

[00:14:52] Junto com isso,

[00:14:53] vem alguns problemas,

[00:14:54] que você vai ter que lidar,

[00:14:55] como consistência eventual,

[00:14:56] maior complexidade,

[00:14:57] na hora de depurar.

[00:14:58] Você vai precisar,

[00:14:59] ter uma observabilidade,

[00:15:00] de alta escala,

[00:15:01] distribuída.

[00:15:02] Vai ter que ter,

[00:15:03] uma boa comunicação,

[00:15:04] entre os serviços.

[00:15:05] E,

[00:15:06] assim,

[00:15:07] pela minha experiência,

[00:15:08] nem sempre,

[00:15:09] as coisas,

[00:15:10] vão funcionar,

[00:15:11] como você planeja.

[00:15:12] Em algum momento,

[00:15:13] você vai ter que,

[00:15:14] em algum momento,

[00:15:15] alguma coisa,

[00:15:16] vai falhar.

[00:15:17] Isso é inevitável.

[00:15:18] Um caso de uso legal,

[00:15:19] é que,

[00:15:20] por exemplo,

[00:15:21] você pode ter um cenário,

[00:15:22] onde o pedido,

[00:15:23] ele pode ter sido pago.

[00:15:24] Mas,

[00:15:25] a notificação,

[00:15:26] de confirmação,

[00:15:27] daquele pagamento,

[00:15:28] não chegou.

[00:15:29] E aí,

[00:15:30] como é que você vai resolver?

[00:15:31] Isso é um problema,

[00:15:32] do consumer?

[00:15:33] Foi o produtor?

[00:15:34] Foi o esquema?

[00:15:35] Então,

[00:15:36] assim,

[00:15:37] é necessário,

[00:15:38] ter algumas estratégias,

[00:15:39] em relação,

[00:15:40] a essa,

[00:15:41] abordagem,

[00:15:42] arquitetural.

[00:15:43] Como o mecanismo,

[00:15:44] para fazer uma depuração,

[00:15:45] alto nível.

[00:15:46] Então,

[00:15:47] sempre que,

[00:15:48] a gente for escolher,

[00:15:49] uma abordagem,

[00:15:50] que utiliza,

[00:15:51] Event Driven,

[00:15:52] a gente tem que estar preparado,

[00:15:53] também,

[00:15:54] para os trade-offs.

[00:16:06] Primeiro,

[00:16:07] eu queria dizer,

[00:16:08] que bingo,

[00:16:09] pelo trade-off.

[00:16:10] E segundo,

[00:16:11] eu queria dizer,

[00:16:12] o seguinte,

[00:16:13] a gente tem,

[00:16:14] tecnologias,

[00:16:15] preferidas,

[00:16:16] ou mais adequadas,

[00:16:17] porque a gente,

[00:16:18] está falando aqui,

[00:16:19] de arquitetura,

[00:16:20] só.

[00:16:21] Mas,

[00:16:22] não falamos de tecnologia,

[00:16:23] não falamos de linguagem,

[00:16:24] de programação,

[00:16:25] de quem vai trazer,

[00:16:26] esse broker.

[00:16:27] O Vini citou,

[00:16:28] vários nomezinhos aí,

[00:16:29] falou de MQ,

[00:16:30] falou de Reds,

[00:16:31] falou de não sei o que.

[00:16:32] Tragam para a gente,

[00:16:33] esse panorama,

[00:16:34] o que que tem,

[00:16:35] o que que é usado,

[00:16:36] o que que não é usado,

[00:16:37] qual que vocês amam,

[00:16:38] qual que vocês odeiam.

[00:16:39] Bom,

[00:16:40] eu vou trazer o meu,

[00:16:41] de estimação então,

[00:16:42] o MQ,

[00:16:43] o famoso,

[00:16:44] Rebt MQ.

[00:16:45] Eu acho que,

[00:16:46] ele é o clássico,

[00:16:47] assim,

[00:16:48] eu acho que,

[00:16:49] normalmente,

[00:16:50] se a pessoa,

[00:16:51] está começando ali,

[00:16:52] até mesmo para aprender,

[00:16:53] se a gente pensar,

[00:16:54] em alguém que nunca usou,

[00:16:55] porque eu acho que,

[00:16:56] ele é um dos mais clássicos,

[00:16:57] né?

[00:16:58] Ele tem,

[00:16:59] várias coisas maneiras,

[00:17:00] que ele faz,

[00:17:01] mas ele é,

[00:17:02] acho que,

[00:17:03] o assíncrono,

[00:17:04] mais tradicional,

[00:17:05] do tipo,

[00:17:06] tem lá uma fila,

[00:17:07] de coisas a serem processadas,

[00:17:08] e alguém,

[00:17:09] lá ouvindo essas filas.

[00:17:10] E aí,

[00:17:11] a gente vai se preocupar,

[00:17:12] assim,

[00:17:13] o meu evento,

[00:17:14] precisa carregar o estado,

[00:17:15] ou não?

[00:17:16] Então,

[00:17:17] por exemplo,

[00:17:18] vamos usar lá o Rebt,

[00:17:19] e vamos lá ter uma fila,

[00:17:20] para ser processada.

[00:17:21] Então,

[00:17:22] eu gerei um evento.

[00:17:23] Então,

[00:17:24] qual é o pensamento,

[00:17:25] que a gente vai ter que ter?

[00:17:26] Esse evento,

[00:17:27] vai ter lá dentro,

[00:17:28] todos os dados necessários,

[00:17:29] para quem vai consumir ele.

[00:17:30] Então,

[00:17:31] por exemplo,

[00:17:32] a gente pode ter um evento,

[00:17:33] de usuário registrado.

[00:17:34] O usuário está lá registrado,

[00:17:35] o que eu vou carregar,

[00:17:36] nesse evento?

[00:17:37] O evento,

[00:17:38] ele vai ter de fato,

[00:17:39] os dados do usuário,

[00:17:40] nome,

[00:17:41] CPF,

[00:17:42] vai lá,

[00:17:43] pega esse D,

[00:17:44] e vai buscar lá,

[00:17:45] onde for necessário.

[00:17:46] Então,

[00:17:47] a gente pensa muito mais,

[00:17:48] é um pensamento,

[00:17:49] mais tradicional,

[00:17:50] no sentido de,

[00:17:51] alguma coisa,

[00:17:52] orientada ao evento.

[00:17:53] Então,

[00:17:54] pensando naquelas três pecinhas,

[00:17:55] alguma coisa aconteceu,

[00:17:56] o Rebt,

[00:17:57] foi informado,

[00:17:58] e quem está lá,

[00:17:59] ouvindo,

[00:18:00] vai pegar,

[00:18:01] e vai reagir.

[00:18:02] Então,

[00:18:03] se a gente precisa,

[00:18:04] por exemplo,

[00:18:05] escalar isso,

[00:18:06] a gente coloca mais.

[00:18:07] Beleza,

[00:18:08] eu preciso que essa fila,

[00:18:09] não fica tão grande.

[00:18:10] Eu preciso de mais agilidade aqui.

[00:18:11] Então,

[00:18:12] a gente consegue pensar,

[00:18:13] em coisas assim,

[00:18:14] no sentido mais tradicional.

[00:18:16] Deixa eu pegar um parênteses,

[00:18:17] porque o Thiago,

[00:18:18] tinha comentado,

[00:18:19] aquela hora,

[00:18:20] que alguma coisa,

[00:18:21] pode não funcionar.

[00:18:22] Você tem todo um planejamento,

[00:18:23] mas alguma coisa,

[00:18:24] pode não funcionar.

[00:18:25] Eu queria pegar esse exemplo,

[00:18:26] que você está trazendo,

[00:18:27] e perguntar,

[00:18:28] Thiago,

[00:18:29] o Vini está mandando lá,

[00:18:30] mensagens,

[00:18:31] mensagens,

[00:18:32] mensagens de eventos,

[00:18:33] que aconteceram,

[00:18:34] e ele disse então,

[00:18:35] que isso fica tudo numa fila,

[00:18:36] nesse serviço específico.

[00:18:38] Pode acontecer,

[00:18:39] de quem consome essa fila,

[00:18:41] parar de funcionar,

[00:18:42] por alguma razão.

[00:18:43] O que existe,

[00:18:44] de estratégia,

[00:18:45] de resiliência,

[00:18:46] o que acontece,

[00:18:47] numa hora dessas?

[00:18:48] Bom,

[00:18:49] a gente tem estratégias,

[00:18:50] de retry,

[00:18:51] tem o fluxo da DLQ,

[00:18:52] que é o basicão,

[00:18:53] de quando a gente,

[00:18:54] trabalha com fila,

[00:18:55] e além desses,

[00:18:56] a gente tem que pensar,

[00:18:57] também na coreografia,

[00:18:58] que foi uma das coisas,

[00:18:59] que o Felipe,

[00:19:00] falou aqui.

[00:19:01] Por exemplo,

[00:19:02] a parte de notificar,

[00:19:03] não funcionou,

[00:19:04] a gente vai dar rollback,

[00:19:05] em todos os serviços,

[00:19:06] ou a gente vai usar,

[00:19:07] um saga pattern,

[00:19:08] a gente vai usar,

[00:19:09] alguma coisa,

[00:19:10] para fazer a coreografia,

[00:19:11] mas respondendo,

[00:19:12] a pergunta dele,

[00:19:13] André,

[00:19:14] então a gente tem que fazer,

[00:19:15] alguma estratégia,

[00:19:16] de retry,

[00:19:17] um, dois, três,

[00:19:18] manda para a DLQ,

[00:19:19] algum outro fluxo assim,

[00:19:20] para que a gente,

[00:19:21] não perca a mensagem.

[00:19:22] Voltando,

[00:19:23] para o sistema hospitalar,

[00:19:24] pensa,

[00:19:25] uma mensagem,

[00:19:26] de um órgão,

[00:19:27] não chegou para a pessoa,

[00:19:28] de um transplante,

[00:19:29] travou na fila,

[00:19:30] não foi na DLQ,

[00:19:31] a pessoa não foi notificada,

[00:19:32] é algo crítico,

[00:19:33] eu estou,

[00:19:34] batendo bastante,

[00:19:35] na questão hospitalar,

[00:19:36] que a gente,

[00:19:37] teve uma live,

[00:19:38] esses dias,

[00:19:39] e o pessoal,

[00:19:40] era do Albert Einstein,

[00:19:41] as coisas assim,

[00:19:42] acha que é bem interessante,

[00:19:43] mas olha,

[00:19:44] quantos sistemas críticos,

[00:19:45] existem,

[00:19:46] aí essa questão,

[00:19:47] de mensageria,

[00:19:48] foi uma das pautas,

[00:19:49] que a gente acabou,

[00:19:50] conversando também,

[00:19:51] e vi como eles,

[00:19:52] trabalham bastante,

[00:19:53] com resiliência,

[00:19:54] pensando justamente,

[00:19:55] nesse sentido,

[00:19:56] a DLQ,

[00:19:57] a DLQ não foi,

[00:19:58] já manda para uma outra fila,

[00:19:59] já manda para um tópico,

[00:20:00] já reprocessa,

[00:20:01] já tem um dashboard,

[00:20:02] já tem um alerta,

[00:20:03] tem um Dynatrace,

[00:20:04] é bem interessante mesmo.

[00:20:05] Aproveita,

[00:20:06] que está com a palavra,

[00:20:07] e conta para a gente,

[00:20:08] então,

[00:20:09] a tua tecnologia favorita,

[00:20:10] nesse mundo,

[00:20:11] como ele falou,

[00:20:12] ele tem a questão,

[00:20:13] do Pub Sub,

[00:20:14] mas a gente consegue,

[00:20:15] trabalhar ali,

[00:20:16] com Exchange,

[00:20:17] de outras formas,

[00:20:18] usando Fanout,

[00:20:19] usando Direct,

[00:20:20] Topic,

[00:20:21] Header também,

[00:20:22] ele é o mais simples,

[00:20:23] da gente implementar,

[00:20:24] e pensando,

[00:20:25] no mundo corporativo,

[00:20:26] é o mais simples,

[00:20:27] da gente ensinar também,

[00:20:28] para o pessoal,

[00:20:29] começar a pegar,

[00:20:30] para o pessoal,

[00:20:31] começar a dar manutenção,

[00:20:32] porque não é simplesmente,

[00:20:33] a gente cadastrar ali,

[00:20:34] um broker,

[00:20:35] e beleza,

[00:20:36] está funcionando,

[00:20:37] você mandou a mensagem,

[00:20:38] e voltou,

[00:20:39] tem que saber,

[00:20:40] quando devolver,

[00:20:41] que não processou,

[00:20:42] tem que saber,

[00:20:43] quando reprocessar ali,

[00:20:44] de uma DLQ,

[00:20:45] tem que saber,

[00:20:46] como que funciona,

[00:20:47] a estrutura,

[00:20:48] e tem ali,

[00:20:49] a parte de Ver Host,

[00:20:50] também que funciona,

[00:20:51] muito simples,

[00:20:52] quando a gente vai escalar,

[00:20:53] para serviços,

[00:20:54] dentro do Rabbit,

[00:20:55] então eu acho,

[00:20:56] que ele é o mais completo,

[00:20:57] hoje,

[00:20:58] e o mais simples,

[00:20:59] da gente passar,

[00:21:00] tem a parte de Streaming,

[00:21:01] que também tem agora,

[00:21:02] que era um dos grandes,

[00:21:03] fortes,

[00:21:04] lá do Kafka,

[00:21:05] então eu acho,

[00:21:06] que ele é bem completo,

[00:21:07] simples,

[00:21:08] e tem aquela camada,

[00:21:09] grátis dele,

[00:21:10] até para fazer,

[00:21:11] muito simples,

[00:21:12] então a gente pode ter,

[00:21:13] tanto o ambiente de Dev,

[00:21:14] ali para o pessoal,

[00:21:15] brincar,

[00:21:16] à vontade,

[00:21:17] como a gente pode fazer,

[00:21:18] sistemas de homologação,

[00:21:19] uma versão Trial,

[00:21:20] dependendo do budget,

[00:21:21] da empresa,

[00:21:22] e para produção,

[00:21:23] lindo aí,

[00:21:24] várias Clouds,

[00:21:25] a gente tem ele,

[00:21:26] eu gosto bastante,

[00:21:27] dele mesmo.

[00:21:28] Pô,

[00:21:29] fala sério,

[00:21:30] quando o cara,

[00:21:31] fala Docker,

[00:21:32] o coração,

[00:21:33] sempre dá um quentinho,

[00:21:34] traz uma alegria,

[00:21:35] diferente.

[00:21:36] Paty,

[00:21:37] eu sei que você,

[00:21:38] é a rainha do depende,

[00:21:39] inclusive,

[00:21:40] você sempre fala,

[00:21:41] que você está,

[00:21:42] nesse universo?

[00:21:43] Depende,

[00:21:44] porque,

[00:21:45] brincadeiras à parte,

[00:21:46] mas depende,

[00:21:47] assim,

[00:21:48] eu vou dizer,

[00:21:49] que o meu preferido,

[00:21:50] é o que eu tive,

[00:21:51] mais experiência,

[00:21:52] né,

[00:21:53] eu trabalhei muito,

[00:21:54] com o RabbitMQ,

[00:21:55] o que a galera falou,

[00:21:56] é super verdade,

[00:21:57] né,

[00:21:58] mas quando a gente,

[00:21:59] precisa lidar,

[00:22:00] por exemplo,

[00:22:01] com o fluxo,

[00:22:02] contínuo,

[00:22:03] de milhões de eventos,

[00:22:04] por exemplo,

[00:22:05] blogs,

[00:22:06] chat,

[00:22:07] streaming,

[00:22:08] streaming em geral,

[00:22:09] já,

[00:22:10] o Kafka,

[00:22:11] porque ele é perfeito,

[00:22:12] para esse cenário,

[00:22:13] né,

[00:22:14] então,

[00:22:15] fila,

[00:22:16] tipo,

[00:22:17] não,

[00:22:18] é streaming,

[00:22:19] então,

[00:22:20] é como se fosse,

[00:22:21] transmissão de rádio,

[00:22:22] e a fila,

[00:22:23] não,

[00:22:24] a gente,

[00:22:25] é como se você,

[00:22:26] mandasse uma carta,

[00:22:27] streaming,

[00:22:28] você está,

[00:22:29] transmitindo ali,

[00:22:30] a rádio,

[00:22:31] então,

[00:22:32] foi mais fácil,

[00:22:33] com o Kafka,

[00:22:34] naquele,

[00:22:35] naquele momento,

[00:22:36] e foi Kafka,

[00:22:37] porque,

[00:22:38] eu,

[00:22:39] acho que,

[00:22:40] analisando,

[00:22:41] os prós,

[00:22:42] e contras,

[00:22:43] porque a gente,

[00:22:44] tem que,

[00:22:45] analisar,

[00:22:46] também,

[00:22:47] o know-how,

[00:22:48] do time,

[00:22:49] então,

[00:22:50] como a gente,

[00:22:51] só precisava,

[00:22:52] para,

[00:22:53] para streaming,

[00:22:54] a gente,

[00:22:55] foi para Kafka,

[00:22:56] e jogamos,

[00:22:57] para dentro,

[00:22:58] e falamos,

[00:22:59] assim,

[00:23:00] vamos matar,

[00:23:01] no peito,

[00:23:02] Kafka,

[00:23:03] e deixar,

[00:23:04] o nosso,

[00:23:05] queridinho,

[00:23:06] Rabbit MQ,

[00:23:07] de lado,

[00:23:08] de situação,

[00:23:09] e coisas,

[00:23:10] que acontecem,

[00:23:11] e a gente usa,

[00:23:12] no dia-a-dia,

[00:23:13] e não está ligado,

[00:23:14] eu não vou falar,

[00:23:15] a app,

[00:23:16] mas eu vou contar,

[00:23:17] o caso de uso,

[00:23:18] e vai todo mundo,

[00:23:19] imaginar,

[00:23:20] imagina,

[00:23:21] que a gente,

[00:23:22] tem um cenário,

[00:23:23] onde cada,

[00:23:24] a gente está,

[00:23:25] fazendo streaming,

[00:23:26] de áudio,

[00:23:27] música,

[00:23:28] e a gente,

[00:23:29] precisa,

[00:23:30] ficar reagindo,

[00:23:31] a play,

[00:23:32] pause,

[00:23:33] troca de música,

[00:23:34] porque,

[00:23:35] quando alguém,

[00:23:36] troca de música,

[00:23:37] de áudio,

[00:23:38] ou do som,

[00:23:39] dependendo da qualidade,

[00:23:40] de conexão,

[00:23:41] a gente quer,

[00:23:42] depois de emitir,

[00:23:43] um relatório,

[00:23:44] de quantas pessoas,

[00:23:45] estão ouvindo a música,

[00:23:46] X,

[00:23:47] agora,

[00:23:48] em tempo real,

[00:23:49] então,

[00:23:50] para esse tipo,

[00:23:51] de cenário,

[00:23:52] o Kafka brilha,

[00:23:53] o Nets,

[00:23:54] também,

[00:23:55] tem bastante coisa,

[00:23:56] de stream,

[00:23:57] vale a pena,

[00:23:58] também,

[00:23:59] dar uma olhada,

[00:24:00] mas o Kafka,

[00:24:01] acho perfeito,

[00:24:02] que ele trabalha,

[00:24:03] muito bem,

[00:24:04] com isso,

[00:24:05] então,

[00:24:06] brilha.

[00:24:07] Felipe,

[00:24:08] eu estou me perguntando,

[00:24:09] se na Luisa Lab,

[00:24:10] vocês tem uma,

[00:24:11] bala de prata,

[00:24:12] uma solução,

[00:24:13] para todos os casos,

[00:24:14] em termos tecnológicos,

[00:24:15] mas brincadeira a parte,

[00:24:16] cara,

[00:24:17] qual que é a tua,

[00:24:18] tecnologia favorita?

[00:24:19] É,

[00:24:20] aqui no Labs,

[00:24:21] a gente usa,

[00:24:22] de tudo um pouco,

[00:24:23] tem PubSub,

[00:24:24] tem Wrapped,

[00:24:25] tem Kafka,

[00:24:26] tem Nets,

[00:24:27] também,

[00:24:28] tem,

[00:24:29] dá para brincar,

[00:24:30] com um pouco de tudo,

[00:24:31] assim,

[00:24:32] eu não tenho,

[00:24:33] uma favorita,

[00:24:34] assim,

[00:24:35] para a gente trabalhar,

[00:24:36] com um throughput,

[00:24:37] bem alto,

[00:24:38] de mensagens ali,

[00:24:39] não que o Wrapped,

[00:24:40] também,

[00:24:41] não tenha,

[00:24:42] essa facilidade,

[00:24:43] eu vou muito mais,

[00:24:44] pela,

[00:24:45] necessidade,

[00:24:46] mas,

[00:24:47] se for para,

[00:24:48] empatar o jogo aqui,

[00:24:49] eu vou de Kafka,

[00:24:50] também,

[00:24:51] estou com a parte,

[00:24:52] esse,

[00:24:53] parte aqui.

[00:24:58] E eu quero,

[00:24:59] trazer uma polêmica,

[00:25:00] que o Thiago,

[00:25:01] trouxe lá no começo,

[00:25:02] para vocês debaterem,

[00:25:03] porque o Thiago,

[00:25:04] perguntou,

[00:25:05] se monolito,

[00:25:06] escala,

[00:25:07] ou não,

[00:25:08] é um debate,

[00:25:09] frequente,

[00:25:10] esse aí,

[00:25:11] que,

[00:25:12] quando a solução,

[00:25:13] pode ser um monolito,

[00:25:14] conta para a gente,

[00:25:15] Thiago,

[00:25:16] a origem da provocação,

[00:25:17] cara.

[00:25:18] Esse é,

[00:25:19] um assunto,

[00:25:20] de todas as mesas,

[00:25:21] né,

[00:25:22] assim,

[00:25:23] a gente acaba sendo,

[00:25:24] tipo,

[00:25:25] monolito,

[00:25:26] escala,

[00:25:27] não,

[00:25:28] eu trabalhei,

[00:25:29] por alguns anos,

[00:25:30] na TV Bandeirantes,

[00:25:31] lá,

[00:25:32] e cara,

[00:25:33] era monolito,

[00:25:34] com,

[00:25:35] picture,

[00:25:36] tudo,

[00:25:37] e,

[00:25:38] escalava,

[00:25:39] escalava,

[00:25:40] só que escalava,

[00:25:41] em máquina,

[00:25:42] né,

[00:25:43] eu lembro,

[00:25:44] até hoje,

[00:25:45] um sistema,

[00:25:46] que a gente fez,

[00:25:47] que era,

[00:25:48] o Central de Mídia,

[00:25:49] a gente,

[00:25:50] teve uma evasão,

[00:25:51] lá,

[00:25:52] dos anônimos,

[00:25:53] lá,

[00:25:54] eu lembro,

[00:25:55] que foi o CQC 3.0,

[00:25:56] eles desafiaram,

[00:25:57] os anônimos,

[00:25:58] foi a noite toda,

[00:25:59] a gente tentando,

[00:26:00] enfim,

[00:26:01] bloquear,

[00:26:02] todos os acessos,

[00:26:03] mas ele escala,

[00:26:04] mas ele escala,

[00:26:05] com um certo custo,

[00:26:06] né,

[00:26:07] cara,

[00:26:08] e era on-premise,

[00:26:09] ainda,

[00:26:10] essas,

[00:26:11] essas VMs,

[00:26:12] todas,

[00:26:13] ou,

[00:26:14] tudo on-premise,

[00:26:15] caraca,

[00:26:16] esse dia,

[00:26:17] foi louco,

[00:26:18] a gente,

[00:26:19] não tinha nada,

[00:26:20] de cloud,

[00:26:21] foi bem interessante,

[00:26:22] mesmo,

[00:26:23] mas olha,

[00:26:24] escalar para cima,

[00:26:25] e escalar,

[00:26:26] é,

[00:26:27] não é,

[00:26:28] é verdade,

[00:26:29] e a parte interessante,

[00:26:30] é que,

[00:26:31] também,

[00:26:32] o sistema,

[00:26:33] esse lá,

[00:26:34] que a gente tinha,

[00:26:35] que ele tem,

[00:26:36] cinco funcionalidades,

[00:26:37] três devs,

[00:26:38] um exemplo,

[00:26:39] é mais fácil,

[00:26:40] de escalagem,

[00:26:41] da manutenção,

[00:26:42] do que,

[00:26:43] se a gente tivesse,

[00:26:44] cinco microserviços,

[00:26:45] porque,

[00:26:46] cada um,

[00:26:47] dando manutenção,

[00:26:48] o outro,

[00:26:49] acaba quebrando,

[00:26:50] então,

[00:26:51] quando for pensar,

[00:26:52] escalar,

[00:26:53] a gente,

[00:26:54] também,

[00:26:55] tem que pensar,

[00:26:56] do lado da empresa,

[00:26:57] em sentido,

[00:26:58] de escalar,

[00:26:59] aplicação,

[00:27:00] em sentido,

[00:27:01] com custo,

[00:27:02] como o Vini falou,

[00:27:03] para cima.

[00:27:04] Boa,

[00:27:05] e uma outra parada,

[00:27:06] que eu acho que vem junto,

[00:27:07] quando a gente está falando,

[00:27:08] sobre Event Driven,

[00:27:09] é como é que a gente vai usar,

[00:27:10] e organizar,

[00:27:11] o nosso código,

[00:27:12] porque a gente está falando,

[00:27:13] de um paradigma,

[00:27:14] diferente,

[00:27:15] então,

[00:27:16] não é aquele,

[00:27:17] Controller Model,

[00:27:18] Controller Repository Model,

[00:27:19] como é que a gente,

[00:27:20] vai fazer isso,

[00:27:21] e aí,

[00:27:22] eu vou jogar aqui,

[00:27:23] uma sopa de letrinha,

[00:27:24] porque eu quero ouvir,

[00:27:25] da galera,

[00:27:26] também,

[00:27:27] o que eles têm,

[00:27:28] de favorito,

[00:27:29] na hora de escolher,

[00:27:30] separar ali,

[00:27:31] e fazer tudo direitinho,

[00:27:33] tem a galera aqui,

[00:27:34] para fechar o bingo,

[00:27:35] que usa CQRS,

[00:27:36] para organizar,

[00:27:37] que eu acho muito bacana,

[00:27:38] quando a gente está falando,

[00:27:39] de Event Driven,

[00:27:40] tem a galera,

[00:27:41] que vai lá,

[00:27:42] mais do DDD,

[00:27:43] tem a galera,

[00:27:44] que vai no Saga,

[00:27:45] que o Thiago já falou,

[00:27:46] e tem a galera,

[00:27:47] também,

[00:27:48] que eu já ouvi,

[00:27:49] também,

[00:27:50] que funciona bem,

[00:27:51] eu nunca vi em produção,

[00:27:52] mas a hexagonal,

[00:27:53] para usar,

[00:27:54] Event Driven,

[00:27:55] eu queria saber vocês,

[00:27:56] o que vocês estão usando,

[00:27:57] ou então,

[00:27:58] é no Go Horse,

[00:27:59] é um mononito,

[00:28:00] tem que entregar muito.

[00:28:01] Vini,

[00:28:02] faltaram duas aí,

[00:28:03] Vertical Slice,

[00:28:04] que é o que o pessoal,

[00:28:05] tem utilizado bastante,

[00:28:06] refaturação de monolito,

[00:28:07] vai quebrando,

[00:28:08] os pedacinhos ali,

[00:28:09] para poder escalar,

[00:28:10] então eles utilizam,

[00:28:11] essa abordagem de Feature,

[00:28:12] e a Onion,

[00:28:13] também,

[00:28:14] que o pessoal,

[00:28:15] foi um hype ali,

[00:28:16] acho que se não me engano,

[00:28:17] 2019,

[00:28:18] 2021,

[00:28:19] mas a gente,

[00:28:20] ainda tem alguns,

[00:28:21] eu não vou dizer,

[00:28:22] que é legado,

[00:28:23] porque é pouco tempo,

[00:28:24] mas são alguns,

[00:28:25] meio legadinho aí,

[00:28:26] que a gente,

[00:28:27] também tem ali,

[00:28:28] bastante com Onion.

[00:28:29] Mas Thiago,

[00:28:30] é o Onion,

[00:28:31] porque é em camadas,

[00:28:32] ou é o Onion,

[00:28:33] que a gente bota a mão,

[00:28:34] e chora?

[00:28:35] Eu,

[00:28:36] vou falar a verdade,

[00:28:37] que eu já peguei alguns,

[00:28:38] nos dois sentidos,

[00:28:39] porque,

[00:28:40] o pessoal,

[00:28:41] é o Onion,

[00:28:42] daí tentou colocar ali,

[00:28:43] um Solid,

[00:28:44] aí já mexeu,

[00:28:45] com procedural,

[00:28:46] nossa,

[00:28:47] mas,

[00:28:48] falando,

[00:28:49] de uma arquitetura,

[00:28:50] que eu vejo bastante,

[00:28:51] nas empresas,

[00:28:52] é o Clean Arc,

[00:28:53] eu vejo o pessoal,

[00:28:54] utilizar muito,

[00:28:55] pela facilidade,

[00:28:56] manutenção,

[00:28:57] e escala dele,

[00:28:58] é tranquilo,

[00:28:59] a hexagonal,

[00:29:00] acaba ficando,

[00:29:01] aquele tanque de guerra,

[00:29:02] né?

[00:29:03] É muita coisa,

[00:29:04] para um microserviço,

[00:29:05] um contexto,

[00:29:06] um boundary de contexto,

[00:29:07] só,

[00:29:08] então acaba quebrando,

[00:29:09] mas a galera,

[00:29:10] vem utilizando bastante,

[00:29:11] também,

[00:29:12] o Vertical Slice,

[00:29:13] por conta das features,

[00:29:14] que eles vão,

[00:29:15] migrando dos monolitos,

[00:29:16] e falando ali,

[00:29:17] do Onion,

[00:29:18] acaba ficando,

[00:29:19] entre o Onion,

[00:29:20] e entre o Clean Arc,

[00:29:21] que eles tem ali,

[00:29:22] praticamente,

[00:29:23] o mesmo paradigma,

[00:29:24] a mesma ideia,

[00:29:25] só que um fatia,

[00:29:26] e o outro,

[00:29:27] pode vir de um lado,

[00:29:28] para o outro,

[00:29:29] acaba utilizando,

[00:29:30] o Clean Arc,

[00:29:31] por conta da facilidade,

[00:29:32] até na hora,

[00:29:33] de explicar ali,

[00:29:34] tudo,

[00:29:35] para o pessoal,

[00:29:36] que é mais Junior.

[00:29:37] Na minha experiência,

[00:29:38] eu vejo o Clean Arc,

[00:29:39] porque assim,

[00:29:40] a gente vai separar,

[00:29:41] o domínio da infra,

[00:29:42] beleza,

[00:29:43] ports e adapters,

[00:29:44] mas,

[00:29:45] antes disso,

[00:29:46] antes de escolher,

[00:29:47] como a gente vai organizar,

[00:29:48] eu,

[00:29:49] geralmente,

[00:29:50] trabalho,

[00:29:51] eu preciso,

[00:29:52] pôr o negócio,

[00:29:53] no centro,

[00:29:54] né?

[00:29:55] Então,

[00:29:56] eu trabalho,

[00:29:57] por exemplo,

[00:29:58] com o Domain Driven Design,

[00:29:59] porque,

[00:30:00] quando eu vou fazer,

[00:30:01] de negócio,

[00:30:02] e aí,

[00:30:03] quando,

[00:30:04] chega na parte,

[00:30:05] de escolher,

[00:30:06] como que eu vou organizar,

[00:30:07] esse código,

[00:30:08] aí,

[00:30:09] fica bem mais fácil,

[00:30:10] de enxergar,

[00:30:11] se vai ser,

[00:30:12] Exxon,

[00:30:13] ou Clean,

[00:30:14] né?

[00:30:15] Então,

[00:30:16] ajuda,

[00:30:17] o DDD,

[00:30:18] ele ajuda a modelar,

[00:30:19] em termos,

[00:30:20] de domínios,

[00:30:21] ou subdomínios,

[00:30:22] e aí,

[00:30:23] fica,

[00:30:24] redondinho,

[00:30:25] só para a gente,

[00:30:26] justificar,

[00:30:27] com fortes argumentos,

[00:30:28] para o time,

[00:30:29] para organizar,

[00:30:30] esse coração,

[00:30:31] do negócio.

[00:30:32] Vocês,

[00:30:33] falaram,

[00:30:34] de Júnior,

[00:30:35] falamos,

[00:30:36] de profissionais,

[00:30:37] e eu queria,

[00:30:38] ir agora,

[00:30:39] para o desenvolvimento,

[00:30:40] da carreira,

[00:30:41] de cada pessoa,

[00:30:42] porque,

[00:30:43] dentre os ouvintes,

[00:30:44] que estão acompanhando a gente,

[00:30:45] tem galera,

[00:30:46] que nem de Tec,

[00:30:47] é,

[00:30:48] mas da galera,

[00:30:49] de Tecnologia,

[00:30:50] alguns,

[00:30:51] saíram ali,

[00:30:52] da faculdade,

[00:30:53] ou de um curso,

[00:30:54] que fizeram,

[00:30:55] dominando bem,

[00:30:56] uma arquitetura,

[00:30:57] orientada,

[00:30:58] para as pessoas,

[00:30:59] trabalham,

[00:31:00] em empresas,

[00:31:01] onde,

[00:31:02] não tem a oportunidade,

[00:31:03] por uma questão,

[00:31:04] de negócio mesmo,

[00:31:05] de se trabalhar,

[00:31:06] com outra arquitetura,

[00:31:07] o que vocês,

[00:31:08] recomendariam,

[00:31:09] o que dá,

[00:31:10] para fazer,

[00:31:11] para essa pessoa,

[00:31:12] conseguir estudar,

[00:31:13] conseguir treinar,

[00:31:14] porque a gente,

[00:31:15] está falando,

[00:31:16] de cenários,

[00:31:17] super macro,

[00:31:18] nossa,

[00:31:19] tantas chamadas,

[00:31:20] numa Black Friday,

[00:31:21] escalei,

[00:31:22] para tantas máquinas,

[00:31:23] isso,

[00:31:24] é simulável,

[00:31:25] antes de chegar,

[00:31:26] essa hora?

[00:31:27] Assim é,

[00:31:28] tem uma parada,

[00:31:29] que a gente chama,

[00:31:30] de teste de carga,

[00:31:31] só que,

[00:31:32] é um ponto importante,

[00:31:33] por exemplo,

[00:31:34] esses dias,

[00:31:35] eu estava até,

[00:31:36] conversando,

[00:31:37] com um amigo meu,

[00:31:38] que trabalha,

[00:31:39] numa empresa de varejo,

[00:31:40] e eles,

[00:31:41] estavam repensando isso,

[00:31:42] porque eles,

[00:31:43] estavam fazendo,

[00:31:44] o teste de carga,

[00:31:45] justamente,

[00:31:46] para Black Friday,

[00:31:47] só que,

[00:31:48] imagina o custo,

[00:31:49] porque assim,

[00:31:50] a gente,

[00:31:51] está falando,

[00:31:52] de um teste,

[00:31:53] de muitas requisições,

[00:31:54] de muita gente usando,

[00:31:55] milhões,

[00:31:56] vai escalar,

[00:31:57] tudo,

[00:31:58] vai escalar,

[00:31:59] para cima,

[00:32:00] e a gente vai medir,

[00:32:01] o impacto,

[00:32:02] se você vai aguentar,

[00:32:03] se não vai.

[00:32:04] Mas,

[00:32:05] e essa etapa anterior,

[00:32:06] Vini,

[00:32:07] assim,

[00:32:08] como alguém,

[00:32:09] que hoje entende,

[00:32:10] orientado a eventos,

[00:32:11] começa a se preparar,

[00:32:12] para chegar uma hora,

[00:32:13] na carreira,

[00:32:14] e poder,

[00:32:15] ofertar isso,

[00:32:16] ali no seu currículo,

[00:32:17] né?

[00:32:18] Ah,

[00:32:19] boa,

[00:32:20] então,

[00:32:21] eu acho que,

[00:32:22] assim,

[00:32:23] se a gente,

[00:32:24] está pensando,

[00:32:25] em saber tudo,

[00:32:26] mas entender um,

[00:32:27] vai te ajudar,

[00:32:28] mover mais fácil,

[00:32:29] para os outros,

[00:32:30] se precisar.

[00:32:31] Então,

[00:32:32] dá uma olhada,

[00:32:33] lá no RabbitMQ,

[00:32:34] e dá para fazer,

[00:32:35] uma brincadeira local,

[00:32:36] aqui,

[00:32:37] produzindo,

[00:32:38] e consumindo eventos,

[00:32:39] dá para ter uma noção.

[00:32:40] Então,

[00:32:41] acho que vale a pena,

[00:32:42] ter uma bagagenzinha,

[00:32:43] de fazer um curso,

[00:32:44] entender como funciona,

[00:32:45] e ter uma brincadeira,

[00:32:46] lá no GitHub.

[00:32:47] Se a gente,

[00:32:48] está falando aqui,

[00:32:49] de uma pessoa,

[00:32:50] que está ali,

[00:32:51] no meio da jornada,

[00:32:52] mid,

[00:32:53] né,

[00:32:54] então,

[00:32:55] o RabbitMQ,

[00:32:56] legal,

[00:32:57] mas vamos dar uma olhada,

[00:32:58] numa solução de stream,

[00:32:59] vamos conhecer,

[00:33:00] o que as principais,

[00:33:01] provedoras de cloud,

[00:33:02] tem,

[00:33:03] então,

[00:33:04] aumentar aqui,

[00:33:05] um leque,

[00:33:06] e quando a gente,

[00:33:07] está falando,

[00:33:08] de senioridade,

[00:33:09] mais alta,

[00:33:10] a pessoa,

[00:33:11] tem que bater,

[00:33:12] esse papo,

[00:33:13] aqui,

[00:33:14] que a gente,

[00:33:15] está tendo,

[00:33:16] agora.

[00:33:17] Eu preciso,

[00:33:18] usar EventDriven?

[00:33:19] Eu sei,

[00:33:20] que,

[00:33:21] usar EventDriven,

[00:33:22] é o clássico,

[00:33:23] de mudar,

[00:33:24] a forma de pensar,

[00:33:25] e como que a gente,

[00:33:26] vai fazer aqui,

[00:33:27] as nossas partes,

[00:33:28] do nosso sistema.

[00:33:29] Então,

[00:33:30] a pessoa,

[00:33:31] tem que estar pronta,

[00:33:32] para medir,

[00:33:33] se no final,

[00:33:34] essa conta,

[00:33:35] vai fechar positiva,

[00:33:36] vamos para EventDriven,

[00:33:37] ou não,

[00:33:38] não vai fechar positivo,

[00:33:39] ou mesmo,

[00:33:40] quando alguém,

[00:33:41] vem com uma decisão,

[00:33:42] acontece muito isso,

[00:33:43] no mundo corporativo,

[00:33:44] alguém,

[00:33:45] vem com uma decisão,

[00:33:46] de cima para baixo,

[00:33:47] dizendo que,

[00:33:48] vamos usar EventDriven,

[00:33:49] e aí,

[00:33:50] às vezes,

[00:33:51] está todo mundo,

[00:33:52] pensando mesmo,

[00:33:53] que a gente precisa disso,

[00:33:54] vamos rever isso,

[00:33:55] vamos,

[00:33:56] oh,

[00:33:57] será?

[00:33:58] Olha aqui,

[00:33:59] olha aqui,

[00:34:00] olha esse lado,

[00:34:01] olha isso,

[00:34:02] que a gente,

[00:34:03] vai ter que tomar conta,

[00:34:04] olha esse sistema aqui,

[00:34:05] que não está preparado,

[00:34:06] para isso.

[00:34:07] Então,

[00:34:08] quanto mais senioridade,

[00:34:09] mais a pessoa,

[00:34:10] tem que estar pronta,

[00:34:11] para discutir,

[00:34:12] não discutir,

[00:34:13] de sair no braço,

[00:34:14] mas,

[00:34:15] conversar sobre essa,

[00:34:16] se essa,

[00:34:17] é a melhor opção,

[00:34:18] ou não.

[00:34:19] Eu acho que,

[00:34:20] se a pessoa,

[00:34:21] eu acho que,

[00:34:22] primeiro,

[00:34:23] o que eu recomendo,

[00:34:24] não comece,

[00:34:25] pela tecnologia,

[00:34:26] primeiro,

[00:34:27] se pergunte,

[00:34:28] o que eu preciso,

[00:34:29] resolver,

[00:34:30] qual que é a dor,

[00:34:31] acho que,

[00:34:32] principalmente,

[00:34:33] também,

[00:34:34] estudar fundamentos,

[00:34:35] o que é um evento,

[00:34:36] qual que é a diferença,

[00:34:37] entre um comando,

[00:34:38] um evento,

[00:34:39] uma query,

[00:34:40] diferença entre,

[00:34:41] eventos de notificação,

[00:34:42] o que é EventSourcing,

[00:34:43] por exemplo,

[00:34:44] que isso,

[00:34:45] vai acabar pegando,

[00:34:46] um pouco,

[00:34:47] quem utiliza EventDriven,

[00:34:48] e,

[00:34:49] principalmente,

[00:34:50] conceito de Publishing,

[00:34:51] e Subscriber,

[00:34:52] que é o conceito,

[00:34:53] central ali,

[00:34:54] quando a gente está falando,

[00:34:55] de EventDriven.

[00:34:56] Acho que,

[00:34:57] fazer prova,

[00:34:58] de conceito,

[00:34:59] também,

[00:35:00] para entender,

[00:35:01] o que aquilo,

[00:35:02] vai agregar,

[00:35:03] no que você está construindo,

[00:35:04] como produto,

[00:35:05] dentro da empresa,

[00:35:06] principalmente,

[00:35:07] ter muita força,

[00:35:08] de vontade,

[00:35:09] porque,

[00:35:10] hoje em dia,

[00:35:11] cada hora,

[00:35:12] cada segundo,

[00:35:13] que passa,

[00:35:14] tem uma tecnologia,

[00:35:15] nova,

[00:35:16] tem,

[00:35:17] um processo,

[00:35:18] novo,

[00:35:19] de arquitetura,

[00:35:20] sendo criado,

[00:35:21] sabe,

[00:35:22] pegar muito,

[00:35:23] se pegar muito,

[00:35:24] nos fundamentos.

[00:35:25] É isso,

[00:35:26] é começar,

[00:35:27] pelo fundamento,

[00:35:28] que nem a gente,

[00:35:29] começou falando,

[00:35:30] às vezes,

[00:35:31] a pessoa,

[00:35:32] não sabe,

[00:35:33] nem o que é,

[00:35:34] um desacoplamento,

[00:35:35] ela não sabe,

[00:35:36] nem o que é,

[00:35:37] escalar,

[00:35:38] quando a gente,

[00:35:39] fala assim,

[00:35:40] por que,

[00:35:41] que não escala,

[00:35:42] o que é,

[00:35:43] esse não escalar,

[00:35:44] trabalha,

[00:35:45] quando a gente,

[00:35:46] está mandando,

[00:35:47] 10 mensagens,

[00:35:48] trabalha bem,

[00:35:49] mas,

[00:35:50] então,

[00:35:51] esses fundamentos,

[00:35:52] eles são realmente,

[00:35:53] muito importantes,

[00:35:54] porque,

[00:35:55] a gente precisa,

[00:35:56] ter o discernimento,

[00:35:57] porque,

[00:35:58] tem várias ferramentas,

[00:35:59] muita gente,

[00:36:00] pode estar perguntando,

[00:36:01] agora,

[00:36:02] eu tenho que usar,

[00:36:03] tudo isso,

[00:36:04] eu tenho que usar,

[00:36:05] o broker,

[00:36:06] eu tenho que,

[00:36:07] eu tenho que usar,

[00:36:08] event search,

[00:36:09] sagas,

[00:36:10] ordenação,

[00:36:11] o resto,

[00:36:12] todo,

[00:36:13] não,

[00:36:14] não necessariamente,

[00:36:15] mas,

[00:36:16] dentro dessa,

[00:36:17] sopa de letrinha,

[00:36:18] todos,

[00:36:19] usa o broker,

[00:36:20] mas, também,

[00:36:21] trabalhe,

[00:36:22] com observabilidade,

[00:36:23] então,

[00:36:24] tem que entender,

[00:36:25] ali,

[00:36:26] o chão,

[00:36:27] para aí,

[00:36:28] a gente pegar,

[00:36:29] nossa caixinha,

[00:36:30] de ferramenta,

[00:36:31] e olhar,

[00:36:32] o que nós temos,

[00:36:33] lá dentro,

[00:36:34] de acordo,

[00:36:35] com o cenário,

[00:36:36] que eu tenho,

[00:36:37] porque,

[00:36:38] nem sempre,

[00:36:39] a gente precisa,

[00:36:40] usar sagas,

[00:36:41] a gente não precisa,

[00:36:42] usar event searching,

[00:36:43] porque,

[00:36:44] o broker,

[00:36:45] ele resolve,

[00:36:46] muito bem,

[00:36:47] a ordenação,

[00:36:48] é simples,

[00:36:49] então,

[00:36:50] sim,

[00:36:51] fundamento,

[00:36:52] em primeiro lugar,

[00:36:53] segundo,

[00:36:54] fazer perguntas,

[00:36:55] perguntas,

[00:36:56] abrem caminhos,

[00:36:57] e,

[00:36:58] essas perguntas,

[00:36:59] elas direcionam,

[00:37:00] ah,

[00:37:01] realmente,

[00:37:02] eu tenho,

[00:37:03] que suportar,

[00:37:04] um cenário,

[00:37:05] que eu preciso,

[00:37:06] fazer,

[00:37:07] rebobinar,

[00:37:08] a fita,

[00:37:09] eu tenho,

[00:37:10] que ver,

[00:37:11] toda a história,

[00:37:12] do evento,

[00:37:13] por x,

[00:37:14] y,

[00:37:15] z,

[00:37:16] ah,

[00:37:17] isso aí,

[00:37:18] vem de ser,

[00:37:19] se uma coisa,

[00:37:20] vai puxar na outra,

[00:37:21] e é natural.

[00:37:22] Boa,

[00:37:23] pegando então,

[00:37:24] a pergunta do André,

[00:37:25] tem um pedaço da fala dele,

[00:37:26] que falou,

[00:37:27] para o pessoal,

[00:37:28] que é programador,

[00:37:29] e não programador,

[00:37:30] como que eles conseguem,

[00:37:31] colocar em prática,

[00:37:32] porque não programador,

[00:37:33] hoje,

[00:37:34] com a evolução daí,

[00:37:35] a gente tem o vibe code,

[00:37:36] então,

[00:37:37] um amigo meu,

[00:37:38] devops,

[00:37:39] ele mostrou a arquitetura,

[00:37:40] que ele mostrou,

[00:37:41] que ele criou lá,

[00:37:42] com o vibe code,

[00:37:43] eu falei,

[00:37:44] interessante,

[00:37:45] você sabe,

[00:37:46] a linguagem,

[00:37:47] é uma maneira,

[00:37:48] de estar,

[00:37:49] também,

[00:37:50] sendo não programador,

[00:37:51] a gente está construindo,

[00:37:52] aplicações hoje,

[00:37:53] com esse grande hype aí,

[00:37:54] do vibe code,

[00:37:55] com a evolução da IA,

[00:37:56] das ideias,

[00:37:57] dos modelos,

[00:37:58] de inteligência artificial,

[00:37:59] mas,

[00:38:00] como que alguém,

[00:38:01] que está começando agora,

[00:38:02] ou na carreira,

[00:38:03] consegue estar colocando,

[00:38:04] essa sopa de letrinhas,

[00:38:05] ou,

[00:38:06] está se especializando,

[00:38:07] nessas ferramentas,

[00:38:08] eu vejo da mesma forma,

[00:38:09] que há 10,

[00:38:10] 20,

[00:38:11] 30 anos atrás,

[00:38:12] mesmo com a parte de IA,

[00:38:13] tem que estudar,

[00:38:14] tem que entender,

[00:38:15] qual que é,

[00:38:16] essa ferramenta,

[00:38:17] porque que ela foi criada,

[00:38:18] o que que ela vai resolver,

[00:38:19] eu sempre gostei,

[00:38:20] de passar para os meus times,

[00:38:21] que primeiro,

[00:38:22] você tem que entender,

[00:38:23] a ferramenta,

[00:38:24] para que depois,

[00:38:25] você possa sugerir ela,

[00:38:26] você não tem que aprender,

[00:38:27] a ferramenta,

[00:38:28] quando você tem um problema,

[00:38:29] você tem que entender antes,

[00:38:30] qual que são,

[00:38:31] suas ferramentas,

[00:38:32] isso vai te tornar,

[00:38:33] um sênior,

[00:38:34] eu conheço,

[00:38:35] tudo que eu tenho que fazer,

[00:38:36] eu sei todas as ferramentas,

[00:38:37] que eu posso utilizar,

[00:38:38] no momento,

[00:38:39] que eu vou precisar utilizar,

[00:38:40] porque ali,

[00:38:41] no momento,

[00:38:42] que acontecer um problema,

[00:38:43] a gente vai fazer a solução,

[00:38:44] mais rápida possível,

[00:38:45] e se não tiver,

[00:38:46] pronto,

[00:38:47] não vai dar,

[00:38:48] mas pô,

[00:38:49] como que eu penso assim,

[00:38:50] eu faço Jiu Jitsu,

[00:38:51] há um tempo,

[00:38:52] e é no Jiu Jitsu,

[00:38:53] a gente treina,

[00:38:54] treina, treina,

[00:38:55] para quando está no momento,

[00:38:56] de um campeonato,

[00:38:57] está no momento,

[00:38:58] de uma determinada situação,

[00:38:59] a gente já aplica,

[00:39:00] eu não aprendi ali na hora,

[00:39:01] a oportunidade veio,

[00:39:02] porque eu me especializei,

[00:39:03] eu tentei antes,

[00:39:04] e pensando hoje,

[00:39:05] no pessoal que está com,

[00:39:06] inteligência artificial,

[00:39:07] pô,

[00:39:08] como que o pessoal,

[00:39:09] vai conseguir entrar no mercado,

[00:39:10] como o pessoal,

[00:39:11] vai conseguir fazer,

[00:39:12] da mesma forma que antes,

[00:39:13] pessoal,

[00:39:14] estudem,

[00:39:15] e coloquem no GitHub,

[00:39:16] só assim,

[00:39:17] vocês vão ter,

[00:39:18] um leque de opções,

[00:39:19] quando vocês forem fazer,

[00:39:20] uma sugestão,

[00:39:21] no brainstorming,

[00:39:22] no refinamento técnico,

[00:39:23] em alguma reunião,

[00:39:24] com pessoas mais sêniores,

[00:39:25] para não acontecer,

[00:39:26] o cenário que eu vim,

[00:39:27] e falou,

[00:39:28] alguém vir com top down,

[00:39:29] tem que usar isso,

[00:39:30] bom,

[00:39:31] mas tem que usar isso,

[00:39:32] por quê?

[00:39:33] Eu vi,

[00:39:34] que em tal cenário,

[00:39:35] usar isso,

[00:39:36] pode ser ruim,

[00:39:37] por conta de tal coisa,

[00:39:38] acompanhar podcasts,

[00:39:39] acompanhar lives,

[00:39:40] para ver,

[00:39:41] experiências de outras pessoas,

[00:39:42] porque,

[00:39:43] como você já passou,

[00:39:44] umas duas,

[00:39:45] três vezes ainda,

[00:39:46] o que funcionou,

[00:39:47] naquela situação,

[00:39:48] para mim,

[00:39:49] não vai funcionar,

[00:39:50] para todo mundo,

[00:39:51] um exemplo,

[00:39:52] eleição de 2000,

[00:39:53] aquela Lula,

[00:39:54] versus Bolsonaro,

[00:39:55] lá,

[00:39:56] que foi umas eleições,

[00:39:57] que bombou bastante,

[00:39:58] eu estava na TV Bandeirantes,

[00:39:59] e caiu,

[00:40:00] porque o Google,

[00:40:01] estava junto com a gente,

[00:40:02] e eles anunciaram,

[00:40:03] e a parte de cadastro,

[00:40:04] nossa,

[00:40:05] não aguentou,

[00:40:06] para fazer o cadastro,

[00:40:07] e a parte,

[00:40:08] de ir para a live,

[00:40:09] o quê que a gente fez?

[00:40:10] A gente estava usando,

[00:40:11] o Azure Container Apps,

[00:40:12] que era uma ferramenta,

[00:40:13] que eu já tinha ido,

[00:40:14] numa live da Microsoft,

[00:40:15] umas semanas antes,

[00:40:16] eu tinha testado,

[00:40:17] então,

[00:40:18] porque eu tinha testado,

[00:40:19] eu coloquei rápido,

[00:40:20] de,

[00:40:21] a cada cinco,

[00:40:22] containerizados,

[00:40:23] que eu colocava,

[00:40:24] eu conseguia escalar,

[00:40:25] para 50,

[00:40:26] 10,

[00:40:27] 20,

[00:40:28] 30,

[00:40:29] então,

[00:40:30] foi algo,

[00:40:31] que eu já tinha testado antes,

[00:40:32] a gente conseguiu colocar,

[00:40:33] se não tivesse testado antes,

[00:40:34] a gente não conseguiria,

[00:40:35] ter entregue ali,

[00:40:36] o debate,

[00:40:37] que foi,

[00:40:38] algo explosão,

[00:40:39] na época,

[00:40:40] lá na TV Bandeirantes,

[00:40:41] então,

[00:40:42] foi até um case,

[00:40:43] para a gente,

[00:40:44] mas por quê?

[00:40:45] Eu estudei antes,

[00:40:46] eu sou,

[00:40:47] então,

[00:40:48] estudem,

[00:40:49] entendam a funcionalidade,

[00:40:50] o porquê,

[00:40:51] porque quando chegar,

[00:40:52] o que eu preciso,

[00:40:53] você já sabe,

[00:40:54] o como eu vou fazer,

[00:40:55] porque se for esperar ali,

[00:40:56] na hora,

[00:40:57] vai dar branco,

[00:40:58] vai dar dor de barriga,

[00:40:59] vai dar dor de cabeça,

[00:41:00] vai dar desespero,

[00:41:01] e vai vir a solução,

[00:41:02] que alguém pensou,

[00:41:03] a solução mais forte,

[00:41:04] possível,

[00:41:05] ou que nem,

[00:41:06] a gente brinca,

[00:41:07] quando os chats alucinam,

[00:41:08] apaga o código,

[00:41:09] vai vir aquela coisa,

[00:41:10] absurda,

[00:41:11] alucinada,

[00:41:12] porque não são,

[00:41:13] os modelos de ar,

[00:41:14] que alucinam,

[00:41:15] a gente também alucina,

[00:41:16] aquela solução,

[00:41:17] que lá na frente,

[00:41:18] vai ser cobrada,

[00:41:19] vai estancar ali,

[00:41:20] no momento,

[00:41:21] mas mais para frente,

[00:41:22] vai trazer problema,

[00:41:23] e fazendo já,

[00:41:24] um jabazinho aí,

[00:41:25] a gente tem,

[00:41:26] dois cursos,

[00:41:27] na Postec,

[00:41:28] que eu coordeno lá,

[00:41:29] que é arquitetura de software,

[00:41:30] que a gente passa,

[00:41:31] desde Domain Driven Design,

[00:41:32] arquitetura,

[00:41:33] por isso que eu passei,

[00:41:34] bastante ali,

[00:41:35] Vertical Slice,

[00:41:36] que é,

[00:41:37] um dos pontos,

[00:41:38] que eu gosto bastante,

[00:41:39] arquitetura hexagonal,

[00:41:40] estou finalizando,

[00:41:41] meu livro agora,

[00:41:42] na Casa do Código,

[00:41:43] já, já,

[00:41:44] vou postar aí também,

[00:41:45] então a gente passa,

[00:41:46] até a parte,

[00:41:47] de deploys,

[00:41:48] de escala,

[00:41:49] tudo,

[00:41:50] e também,

[00:41:51] na nossa pós de IA,

[00:41:52] que é um pouco,

[00:41:53] do que eu falei aqui,

[00:41:54] o que é um modelo de IA,

[00:41:55] como trabalhar,

[00:41:56] com modelo de IA,

[00:41:57] se eu uso Cursor,

[00:41:58] ou VS Code,

[00:41:59] com Copilot,

[00:42:00] já estou trabalhando,

[00:42:01] com IA,

[00:42:02] não,

[00:42:03] você tem que usar,

[00:42:04] uma biblioteca,

[00:42:05] um link chain,

[00:42:06] você tem que saber,

[00:42:07] o que é virtualização,

[00:42:08] você tem que saber,

[00:42:09] o que é RAG,

[00:42:10] então a gente tem,

[00:42:11] esses pontos,

[00:42:12] para que pessoal,

[00:42:13] para ensinar,

[00:42:14] o básico,

[00:42:15] ensinar os fundamentos,

[00:42:16] do que a gente precisa,

[00:42:17] mesmo aí,

[00:42:18] no dia a dia pessoal,

[00:42:19] e tudo com vivência,

[00:42:20] e experiência,

[00:42:21] e a galera,

[00:42:22] que chegou até aqui,

[00:42:23] eu espero,

[00:42:24] que a galera,

[00:42:25] não esteja achando,

[00:42:26] que Event Driven,

[00:42:27] é a solução divina,

[00:42:28] para todos os problemas,

[00:42:29] porque a gente,

[00:42:30] nem falou,

[00:42:31] de autenticação,

[00:42:32] autorização,

[00:42:33] tem uma parada,

[00:42:34] que é um desespero,

[00:42:35] quando a gente,

[00:42:36] está falando de evento,

[00:42:37] que é Denial of Service,

[00:42:38] porque às vezes,

[00:42:39] é uma fila pública,

[00:42:40] e alguém quer derrubar,

[00:42:41] o seu serviço,

[00:42:42] e ela solta,

[00:42:43] um milhão de bot,

[00:42:44] lá publicando,

[00:42:45] a sua fila,

[00:42:46] e são tudo,

[00:42:47] mais de flores,

[00:42:48] aqui não,

[00:42:49] tem que estar,

[00:42:50] bem antenada,

[00:42:51] para usar direitinho.

[00:42:52] E principalmente,

[00:42:53] segurança,

[00:42:54] que hoje em dia,

[00:42:55] é imprescindível,

[00:42:56] você está,

[00:42:57] trafegando dados,

[00:42:58] ali pela rede,

[00:42:59] é mais um complemento,

[00:43:00] além disso,

[00:43:01] que o Vinícius falou,

[00:43:02] principalmente segurança,

[00:43:03] trafegar,

[00:43:04] informações,

[00:43:05] dados com segurança.

[00:43:06] Estou vendo,

[00:43:07] que a solução para isso,

[00:43:08] vai ser a gente,

[00:43:09] já marcar um papo,

[00:43:10] com esse mesmo time aqui,

[00:43:11] para a gente conversar,

[00:43:12] sobre então,

[00:43:13] os problemas,

[00:43:14] escolhi uma arquitetura,

[00:43:15] e agora,

[00:43:16] vamos papar,

[00:43:17] como eu tenho que correr,

[00:43:18] eu queria agradecer,

[00:43:19] demais,

[00:43:20] a todos vocês,

[00:43:21] que acompanharam,

[00:43:22] o nosso papo,

[00:43:23] até agora,

[00:43:24] que se interessam,

[00:43:25] por esses assuntos,

[00:43:26] às vezes,

[00:43:27] um pouco mais aprofundados,

[00:43:28] do mundo da tecnologia,

[00:43:29] e do desenvolvimento,

[00:43:30] e agradecer também,

[00:43:31] ao Tiago,

[00:43:32] a Paty,

[00:43:33] ao Felipe,

[00:43:34] ao Vini,

[00:43:35] por terem ajudado,

[00:43:36] a gente aqui,

[00:43:37] explicado tanto,

[00:43:38] e dado uma verdadeira aula,

[00:43:39] e você viu,

[00:43:40] que durante o papo todo,

[00:43:41] surgiram,

[00:43:42] dicas de materiais,

[00:43:43] até de uma pós-graduação,

[00:43:44] a pós-tec,

[00:43:45] a gente vai deixar,

[00:43:46] você,

[00:43:47] aqui na descrição,

[00:43:48] desse episódio,

[00:43:49] mas eu quero,

[00:43:50] que você dê,

[00:43:51] o seu like,

[00:43:52] e também,

[00:43:53] recomende,

[00:43:54] para um amigo,

[00:43:55] ou para uma amiga,

[00:43:56] hipsters,

[00:43:57] a gente se vê,

[00:43:58] na próxima semana,

[00:43:59] até mais.

[00:44:00] Este podcast,

[00:44:01] foi produzido,

[00:44:02] pela Alura,

[00:44:03] Mergulhe,

[00:44:04] em Tecnologia,

[00:44:05] e Faculdade FIAP,

[00:44:06] Let’s Rock,

[00:44:07] the Future.

[00:44:16] Edição,

[00:44:18] Rede Gigahertz,

[00:44:19] de Podcasts.