SQL vs NoSQL: Tudo o que você precisa saber
Convidados
Valdir Scarin
Vems
Explore o episódio
Neste novo episódio do Podcast PPT Não Compila recebemos o convidado especial Valdir Scarin e mergulhamos no universo dos Bancos NoSQL. 🌐💾 Descubra as nuances e desafios da escolha entre NoSQL e SQL , as vantagens que o NoSQL pode trazer para sua infraestrutura, e os erros comuns que podem ser evitados ao se adotar essa tecnologia. 🚀 Discutimos sobre performance, custo, e a crucial necessidade de uma precisa modelagem de dados quando se trata de NoSQL. Valdir nos conta histórias de sucesso e aprendizados nos bastidores da implementação do NoSQL em grandes corporações. 🎙️🔍 Quer saber se o NoSQL é a escolha certa para sua empresa? Quando vale a pena investir em NoSQL? Acompanhe nosso podcast e descubra! Inscreva-se no canal para mais episódios informativos como este, compartilhe suas opiniões nos comentários 💬, e siga-nos nas redes sociais para ficar atualizado sobre todas as novidades! 🔔 #Podcast #PPTNãoCompila #NoSQL #Tecnologia #BancoDeDados Convidados: Valdir Scarin : linkedin.com/in/valdir-scarin/ Spotify: https://bit.ly/3HVPDwb Youtube: https://youtu.be/Neq3uFmXF-U Outras plataformas: https://linktr.ee/pptnaocompila Acompanhe nas redes Instagram e Twitter: @pptnaocompila LinkedIn: https://www.linkedin.com/company/pptnaocompila Produção: Voz e conteúdo | https://www.vozeconteudo.com.br - @estudiosvoz
- Custos e planejamento em NoSQL
- Introdução e brincadeiras
- Tema do episódio: Limitações do NoSQL
- Agenda do episódio
- Patrocínio: Webbers
- Chamada para ação e apoio
- Interlúdio musical
- Desmistificando o termo NoSQL
- NoSQL: Vantagens e planejamento
- Tipos de NoSQL: Document-driven
- Bancos relacionais: Integridade e ACID
- Inteligência no banco vs. aplicação
- Legado e lógica no DB
- Evolução da engenharia de dados
- Facilidade de manutenção: Relacional vs. NoSQL
- Caso de mau uso: TISS e NoSQL
- ERPs e complexidade de dados
- Performance e modelagem no NoSQL
- Adaptação e duplicação de dados no NoSQL
- NoSQL em ERP?
- Custo de desenvolvimento vs. DB
- Case: Dados hierárquicos em NoSQL
- Debate: NoSQL vs. relacional para transacional
- Estratégia CQRS e abordagem híbrida
- Patrocínio: Clever
- Rigidez do NoSQL e custo oculto
- Desafio de busca em NoSQL
- Soluções híbridas de DB
- Erro de modelagem em Nuvem
- Divagação: Taiwan e China
- Modelagem inadequada em NoSQL (cont.)
- Má prática em DB relacional
- Reconstrução de backoffice com CQRS
- Implementação CQRS e modernização
- Divulgação Webbers
- O papel do arquiteto
- Contexto na aplicação de arquiteturas
- Camada analítica
- Experiência com bancos NoSQL
- Vantagens do SilaDB
- Origem e performance do SilaDB
- Custo de índices em NoSQL na nuvem
- Paradigmas de banco de dados
- Flexibilidade do esquema NoSQL
- Perguntas da audiência: Relacionamentos
- NoSQL substitui o relacional?
- Monolito primeiro e complementaridade
- Perguntas da audiência: Governança
- Governança de dados em NoSQL
- Ferramentas para governança
- Perguntas da audiência: Trade-offs
- Trade-offs do NoSQL
- ORMs e performance em NoSQL
- Perguntas da audiência: Java e NoSQL
- NoSQL com Node.js/Python vs. Java
- ORMs para NoSQL em Java
- Perguntas da audiência: Curva de aprendizado
- Curva de aprendizado do NoSQL
- Resumo para C-level
- Recomendações para implementação
- Escolha de ferramentas e suporte
- Chamada para Webbers
- Encerramento e agradecimentos
- Agradecimento final e CTAs
Você tem noção que a gente viveu um mundo que tinha trigger em banco de dados?
>> E eu gosto tanto dessas triggers, elas são maravilhosas. Poxa, eu uso no Secato e rápido, só que eu tenho o tenho o custo alocado em outro lugar na gravação do dado. É muito importante você olhar pro banco no sequel com cuidado, carinho e cuidado.
>> É igual você falar sobre herança numa linguagem que é procedural. Não existe, não existe herança nesse, esse mundo é diferente. Eu pego um pequeno grupo de informações que eu trabalharia com com se algum grupo de de casos que eu trabalharia, eu consigo trabalhar com no CO para ter muito mais performance. E aí você vai pagar o preço. Se você não planejar corretamente, você vai pagar o preço no teu tempo de desenvolvimento.
Muito bem. Muito bem, meus amigos do PPT na Compila, estamos aqui para mais um episódio. E hoje eu tô aqui com meu amigo, meu irmão, o gigante, o Golum.
Não é Golum, né, cara? Como é o nome do gigante?
>> Golum é do do Harry Potter, né?
Pequeninho. É. É. Não, que Harry Potter >> não é o gol, pô. Do anel, cara. Não, do >> Senhor dos Anéis.
>> Não, cara. É culpa o nome do >> E o episódio vai ser bom, hein?
>> Hoje vou começar bem >> o O episódio vai ser bom, cara.
>> Como é o nome do gigante, cara?
>> Gunis, não é? Dos Gunis.
>> Vixe, velho.
>> Eu não sei. Tá aqui meu amigo, meu gigante, meu amigo Valdir.
>> Obrigado, Vé por mais um convite, cara.
Muito bom.
>> Você sabe que aquela casa é sua, né, cara? Você desse podcast já.
>> C obrigado. Esse podcast aqui é divertido. É, é muito, a gente tem muito conhecimento aqui, né? E, e é, o tempo passa que a gente nem vê, cara. percebe, né, cara? E hoje a gente vai falar de um assunto bem interessante, né, que é >> vamos continuar, né, continuar. A gente já tá, acho que uns quatro, uns três episódios, né? Se você que não viu, dá uma olhadinha aqui no histórico, né, nos tá aqui o dos links aqui embaixo ou aqui, sei lá, tá, tá aqui em algum lugar aqui.
>> A gente vem falando muito do da utilização do banco de dados no cicle para dar performance pras aplicações, né?
>> Mas acho que faz sentido a gente fazer esse episódio aqui para falar um pouco de será que ele resolve tudo >> isso? Como é que modera essa [ __ ] >> Será que é só chegar lá, instalar e acabou? Next, next, finish.
>> Isso. Como é que faz? Você como é que usa no dia a dia, né?
>> Como é que quais são os casos que de fato eu preciso usar um banco de dados sequel? Quando eu preciso usar um no cquel, ele resolve tudo? Não resolve.
Tem constraint, >> tem que fazer a modelagem da tabela antes.
>> Tem que fazer modelagem. Tem for, >> tem for.
>> Como é que faz essa [ __ ] É só fazer select, asterisco vai.
>> Não, então vamos vamos desmistificar tudo isso aqui, né, né? Boa, boa. Vamos sim.
>> Então vamos lá que o tá muito bom. Vamos voltar desde o comecinho aqui, entender o que que é um um banco no cicle, como que funciona o banco no cicle, quais são as diferenças dos bancos sequeles, eh, a aplicação de cada um. Vamos falar aqui das dificuldades da aplicação de do banco no Seicol, quais são a as dificuldades de aprendizado, quais são os benefícios, quais são os problemas, né? Acho que a gente vai conseguir dar uma uma um bom overview aqui para vocês, pelo menos essa é a nossa nossa intenção. Mas antes de qualquer coisa, se você quer ter um banco no ciclo da sua empresa, tá com dificuldade, com que que a gente pode fazer, >> ah, chama Webbers, a gente pode te ajudar, com certeza.
>> Pode, né? Chamar. Nós temos alguns casos até que a gente vem trazendo aqui, né?
Mas é muito legal a gente conhecer o tua necessidade, o teu caso de uso. Então, fala com a gente. Se você quiser, eh, entra no site, coloca lá no formulário o teu contato, a gente vai entrar em contato com vocês. Ou é, manda um e-mail para contato@vemers.
Ou manda para mim também, valdir.ccarinha@vmibers.
>> Vai lá e chama ele no LinkedIn que >> LinkedIn também respondi na hora.
>> Isso aí, >> né? Então, conheça aqui o caso de usar o nocleo. E sabe o que é legal também para quem quer aprender no cycle?
>> Diga.
>> É legal ser membro do PPT no CIL?
>> Com certeza.
>> Cara, pode ir lá no YouTube agora, se ele tá aprendendo aqui com a gente, se ele entende que o PPT traz um retorno pra vida profissional dele, ele pode ser membro do PPT, vai lá no YouTube, vai ter acesso antes nos episódios que a gente libera na segunda-feira. Então, a galera vai ver na quarta, ele já viu na segunda-feira, já vai aprender um pouquinho mais. Vai ter algumas outras coisas aqui que a gente vai liberar em breve. A galera já tá achando que é o 71, porque eu tô falando isso faz um tempão, mas agora a gente a gente vai ter aqui >> sortear uns brindes, >> muito mais do que brindes, hein? Vamos ter um plano de fidelidade aqui do PPT no CPIL em breve, >> certo?
>> Mas e e quem já for membro vai ter vantagens, né? Certo? Você vai lá, vai ser membro do PPT no CIL, vai contribuir aqui com a gente com o valorzinho para pagar a comida daquele gordinho que é operador que para [ __ ] >> a cerveja do Valdir e se você não pode >> colaborar dessa forma, você já ajuda demais crescendo a comunidade PPT com pila. Então divulga esse esse episódio no WhatsApp, no Teams da empresa.
>> Se inscreve no canal >> e se inscreve no canal, deixa um comentário. O negócio do comentário eu acho muito legal. Eu acho que a galera deveria usar mais, porque não sei se todo mundo sabe, quando você comenta, a gente sabe exatamente o ponto que você comentou, então a gente consegue lá e tirar sua dúvida. Então, pô, você tá assistindo nesse ponto aqui, deixa o comentário, deixa uma pergunta, a gente sabe exatamente da onde foi a pergunta, eu mando pro Valdir, eu cobro ele.
Então, ajuda a engajar e crescer a nossa comunidade que vão trazer cada vez mais conteúdo gratuito aqui para você e fazer a sua vida profissional decolar.
>> Isso aí.
>> Não, só eu ia falar o nome de uma escola agora, mas ela não patrocina a gente.
Então, talvez na próxima a gente fala: "Vamos lá que o episódio tá muito bom".
Bora.
[Música] [Aplausos] [Música] [Aplausos] [Música] No cic >> no >> c >> no se é não.
>> Vamos usar SQL.
>> É o que é uma mentira.
>> É porque você usa SQL.
>> Porque você usa SQL. Você vai lá e escreve select asterisco from bananinha.
>> É exato.
>> E aí vai vai retornar dada.
>> Vai retornar. Eu acho que esse é o primeiro é o primeiro ponto que a gente tem que desmistificar, né? Porque >> pô, boa, boa. Desmistificar, né, W?
Então assim, a gente a gente nem a gente sempre começa e não sabe onde vai terminar, né?
>> É, aqui é o pessoal acha que isso aqui é organizado, mas é uma zona do [ __ ] >> Exato. Mas o grande ponto aqui é o seguinte, né? A gente vem falando alguns episódios já e sobre poxa, como o Banco No Secode mudar sua vida, né? E realmente pode, mas assim, não é a sua vida inteira que ele vai mudar, ele vai mudar uma parte dela e você precisa conhecer muito bem essa parte. Então você precisa conhecer muito bem o problema que você quer resolver, porque senão você vai você vai achar outro problema, >> outros outros. Inclusive, tem um caso aqui que eu quero citar de aplicação errada de um banco no ciclo >> no na verdade aplicação não foi errado.
A o desenvolvimento foi errado usando no ciclo.
>> Boa. Então e e vamos falar muito sobre isso aqui, né? Mas pegando o gancho aqui, né? Eh, do select. Eh, então assim, quando você vai pensar na solução do no ciclo, você precisa conhecer muito bem o seu desafio, porque realmente é surreal a velocidade de um banco no sequel e com a infraestrutura infinitamente menor do que um banco sequel mega blaster para ter a mesma performance, né? Então, ah, eu consigo ter uma performance monstro com um Oracle hack. Consegue, [ __ ] Mas é um Oracle hack. Cara, é um é um exadata, meu. Você vai ter quantos milhões aí que você gastou nessa máquina, né? Pô, o no Sicou milhões e você tem a mesma performance, só que você tem que pensar muito bem na sua aplicação, tem que projetar muito, né? Então, a gente veio falando aqui em vários e episódios que o No se cicle é maravilhoso. É, então esse episódio aqui, acho que a nossa missão é muito é falar, ele é maravilhoso em tais cenários, né?
>> E por quê? E por exatamente, >> é, acho que o o ponto é bem esse, né?
Quando a gente fala do clássico SGBD, né, que é o motor de banco de dados Oracle, Maria, Postre, Macleo, etc.
>> Eh, começa que a gente tá falando de uma camada de de desenvolvimento, de gerenciamento muito grande em cima dele, né?
E todo motor no cicle, ele é muito mais leve, mais perto do IO, né? E isso leva a a ao nosso primeiro ponto que eu queria discutir com você, que é o primeiro tipo de banco de dados no ciclo, que é o mais clássico, não é o caso do Sila, né? Mas o o pessoal conhece mais, que é o Mongo, o Data Store do Google, etc., que são os document driven, que são bancos de dados que são eh projetados para armazenar documentos, né? E ele é tão simples que ele é basicamente um IO onde ele te retorna um Jon que tá persistido no disco, né?
>> Basicamente isso.
>> Basicamente isso, né? Então, para você que tá ouvindo a gente fazer uma comparação, você num SGPD que é ciclo colunar, você tem tabelas e colunas, certo? E linhas, que são os registros.
Dentro do de um banco de dados que é document driven, você tem uma, você deixa de chamar de tabelas, você vai falar de entidades, né? falar de objetos ou entidades e que você tem eh propriedades dentro dessas dessa dessas tabelas, né, dentro dessas eh desses conjuntos de dados, né, dessas entidades, né?
>> E aí que você e você pode entender isso como um objeto de que cada propriedade pode ser um outro objeto ou pode ser um rei, né? E >> um objeto aninhado, né? objeto.
>> E aí, aí você pega um ponto interessante, né? Eh, quando você tá pensando nesse documento driven, então você tem que ter a visão do todo que você vai persistir, porque você não tem relacionamento.
>> Exatamente. É, e aí assim, esse episódio aqui ele é muito para ficar mais tecnicão, né, e mais profundo, mas o ponto é, né, você vai você quando você trabalha com um banco de dados relacional, você tem lá as formas normais, né, as seis formas normais que te orientam como organizar as suas tabelas para que não haja eh duplicação de dados, que haja eh referência eh de integridade entre os dados para que não haja >> tem a referência cruzada referência cruzada. É, tem um esse esse conjunto, né, de de seis normas. Aí eles garantem que você tá gravando os dados da melhor forma possível e e aí as ferramentas são otimizadas para quê? Para garantir essa o acide, né? O a atomicidade, consistência, integridade, acide.
>> Ah, o seu, >> o seu é como que é? Ax o seu sutak, né?
É, é mais elegante.
>> É, é que lembra ácido.
>> Ah, entendi o por que você gosta.
>> É, que que você quis dizer com isso?
>> Mas eh e o integridade e durabilidade, né? Então eles têm um negócio que é maravilhoso quando, principalmente quando você fala de de sistemas eh transacionais, né, que mantém cadastros, que é a transação.
Ele garante o relacionament o que os as persistências entre várias entidades distintas estejam ali e envolvidas numa transação. Então, quem tá lendo não vai pegar o dado desatualizado, garante que o cara não vai alterar o dado por um valor que já passou, né? Então você tem um monte de constraints no banco relacional que você não consegue ter no banco e no ciclo, né?
>> É isso. Que basicamente são formados ali por PCAS e FC. São os primary keys e os forys >> foreign keys >> que mantém o que a gente chama de consistência do banco de dados, né?
Então, em tese, num SGBD robusto sequle, você nunca vai ter uma chave apontando para um registro que não existe.
>> Perfeito. Ele já te dá uma na cara. Você for inserir uma cagada, ele já te dá uma uma na cara. Então, é um ponto interessante. E >> é isso aqui que é basicamente o transaction. Quando você faz uma operação de persistência, >> ou você persiste tudo ou você não persiste nada para poder manter a consistência, né? Perfeito. E aí uma coisa que eu eu trabalhava com ads, né, muito muito especializados, né, e eles sempre falavam: "Poxa, as aplicações antigamente elas tinham a inteligência no banco de dados". Aí eles garantiam que o dado tava consistente. E hoje com essas aplicações novas que a gente a gente acaba tirando um pouco dessa inteligência do banco, é a aplicação que vira Guardian, né? E isso é também é uma mudança grande paradigma, então >> e que tem que ser muito bem dosada, né?
Com certeza.
>> Porque uma coisa é você porque tem tem vários níveis aqui, né, pra gente eh não descer tanto nesse ponto, mas eu consigo ter uma aplicação sequle com constraints, com primary keys, foreign keys e um banco consistente, mas sem tanta regra no SGBD, se eu não usar uma Proc, se eu não usar uma Procedur, >> né? Mas eu nem tava indo para esse mundo ainda. Não, esse mundo, esse mundo acho que ele ele já existiu, né? Eh, mas hoje ele não deve ser pregado de forma nenhuma, até porque >> é ele não é boa prática hoje, mas o que tá cheio do mercado ainda com um banco de dados cheio de rodando exadata porque tá é é basicamente um servidor de aplicação dentro de dados. Exatamente.
Então, eh, muitos, muitos sistemas talvez precisaram disso em algum momento, né, que era o volume de dados trafegados eram tão grandes que você precisava do programa rodando muito perto do dado. Por isso que as os bancos de dados acabaram virando servidores de aplicações, né? Eh, perfeito, e talvez, >> car, você tem noção que a gente viveu um mundo que tinha trigger em banco de dados e eu gosto tanto dessas triggers.
Elas são maravilhosas.
>> Meu Deus, cara.
>> Mas o fato é, né, eh, a gente a gente botava muita coisa lá, né? Eh, e aí a gente precisava disso naquela época, né?
Porque também a gente não tinha as ferramentas de engenharia de dados que nós temos hoje, né? Então, poxa, hoje você tem e Spark, você tem e AWS Atina, você tem e data bricks, você tem meu mundo de ferramentas para te ajudar a trabalhar com volume absurdo. No passado você não tinha, então você acabava usando essas capacidades do banco, né?
>> É, até por exemplo, quando a gente fala transacionalmente, você quer gerar um processo assíncrono, por exemplo, depois de persistência do banco de dados. Nessa época você não tinha um MQ, não tinha um produção ou coisa do tipo que >> que que te dava um braço assíncrono para trabalhar esse dado.
>> E se você tinha, outro processo, tinha e se você tinha, você tinha que ter uma [ __ ] de uma infraestrutura eh provisionada para ter essas ferramentas.
E você tinha um negócio pequenininho, >> poxa, eh, às vezes a empresa de médio porte não ia alavancar um um MQ só para atender uma uma funcionalidade, né?
Então hoje é mais fácil você já começar, certo? Porque a cloud >> ela dimensiona o custo em função da da tua utilização.
Então a gente não pode dar uma de engenheiro de aba pronta, né? O ponto é esse. Assim, a gente tem que olhar pro pro mercado e aí >> era outro mundo.
>> Exatamente. É, a gente tem que olhar pro legado com a com a perspectiva daquela época, né?
>> Quer falar alguma coisa, >> eu quero fazer DTS para fazer a síncrono. Lembra?
pouca gente vai saber o que é isso.
Tinha que fazer um DTS, mano.
>> Meu Deus do céu. E e o grande ponto aqui, então, né, é que a gente tá falando, poxa, eh, os bancos de dados transacionais, eles são relacionais, né?
eles são muito mais fáceis de você manter, enquanto o os bancos de dados no sequelo, eles são eh arquivos e aí você precisa conhecer muito bem o o dado que você tá tá produzindo, porque até até a aplicação conforme ela vai evoluindo, ela precisa do dado de um jeito diferente, só que você vai ter que eh fazer o o teu controle nos documentos, né, que estão persistidos ali. E aí acaba que a sua aplicação vai vai ficando mais robusta, né? Deixa eu pegar esse teu ponto para puxar exatamente aquele caso que eu falei do do mau uso.
Eu acho que o principal ponto que a gente separa aqui como tem muitos outros, mas eu acho que o mais primário quando a gente fala de um uso de um banco sequel ou no cicle é a quantidade de visões que você precisa ter sobre o mesmo dado.
se ela tem, se ele tem sempre a mesma cara, se você tem entidades muito bem definidas e que você não precisa compor outras entidades em tempo de execução sobre aquilo, um banco nocico ele cai muito bem, né? E eu vou dar um exemplo, eu vou confirmar a minha teoria com um exemplo ruim, né, que nem todos vão conhecer, mas eh você deve ter tido contato em algum momento.
O banco de dados do TIS de saúde.
>> Sim, >> é um banco gigantesco, todo relacional, com 300 tabelas de domínio.
>> Sim.
>> Que no fim todas aquelas tabelas de domínio formam um único documento.
>> Só pra gente pensar aqui, né? O TIS é o o protocolo de transferência de informação de saúde suplementar.
>> Então o TIS ele é uma normativa do governo, né, da ANS para que os planos de saúde troquem eh dados com as quer dizer a a os sistemas de saúde, né, as empresas de saúde troquem dados troquem com o governo.
>> Exatamente. O com o governo e também com os hospitais, né? Então >> existe entre elas, né?
>> Exatamente. Então eh como você disse, né? Então, esse esse padrão ele determina que você tenha eh todos os dados ali. Inclusive ele usa XML, né?
Ele usa XML. Então, o documento ele é sempre o mesmo, ele tem sempre a mesma cara, que é uma conta médica ou uma um relatório médico. Então, você sempre gera um documento a partir daquelas tabelas e as tabelas são todas tabelas de domínio. Então, eu nunca vou ter uma visão diferente, como por exemplo teria num um RP. Eu posso estar falando uma grande besteira aqui, foi um insite rápido, mas dificilmente você faria um RP em banco no ciclo >> e e aí eu vou pegar esse gancho aí >> porque aí você vai ter várias visões do mesmo cubo, você não tem uma entidade só.
>> E você também não conhece todo o negócio no começo, né? Por mais que você, ah, se você falar do SAP, pô, o SAP é uma ferramenta gigantesca, todo mundo põe no mundo inteiro, né? Eh, mas toda empresa customiza.
>> Todo, exatamente, >> toda empresa customiza. Então assim, você não conhece o negócio por completo e aí você precisa acessar o dado de várias formas diferentes, né? E também tem um pouco do volume, né? Eh, acho que o o aí tá lá na frente a gente chega nisso, mas é o que o Banco de Dom Cicle dá para nós é muita performance também, né?
>> Exatamente. Porque é, mas é justamente por isso, né? Porque você já tem uma definição tão clara do objeto que você precisa que você não tem essa camada de processamento.
Você nunca vai precisar fazendo fazer um inner join numa num banco no cíico, porque >> se você precisar aí aí o que que acontece, né? Você tem que voltar >> pra sua pro seu momento de geração do dado e falar: "Bom, como eu posso construir essa perspectiva logo agora? E aí eu vou complementar o ponto pelo exatamente como você dis.
>> É, a gente a gente tá falando, W, esse episódio ele tem que dar pelo menos uns 40 uma 40 minutos, uma hora, velho.
Vamos vamos dar em pílulas, vamos dar em pílulas pro nosso eh ouvinte a os grandes pulos, até para eles conseguirem digerir, cara. Eh, é muita informação técnica, né?
>> Sim. É, vamos devagar. Vamos devagar, vamos devagar.
>> É, mas o o o grande ponto aqui, né? Eh, a gente tava falando lá da das estruturas e elas são são muito flexíveis no no banco de dados no ciclo, né? A gente persiste o dado e aí depois na aplicação você tem que saber ler aquele dado na versão que ele está. Aí agora a gente tá falando aqui: "Poxa, eh, se eu precisar acessar o dado numa perspectiva diferente, eu já tenho que duplicar o dado porque eu não consigo eh fazer os inner joys, eu não consigo fazer os relacionamentos. Então são são todas características e que porque que assim quando você faz um RP você não tem cara logo no começo, porque você tá construindo módulos, você tá relacionando informações entre os módulos, são módulos muito grandes, né?
Eh, então realmente a gente volta lá pro pro comecinho, né? Que é, poxa, você precisa conhecer muito bem qual parte da tua solução você vai usar esse tipo de bot de dados, né? Eu eu fico imaginando aqui, cara, que assim, até daria para fazer um RP no ciclo.
>> Daria.
>> É, mas é a questão da modelagem, ela é muito importante, né? Porque se se é quando você aprende a pensar no ciclo, fica mais fácil.
>> É, mas o mas tem um ponto aqui que eu e a gente tem que levar em consideração que é o seguinte, o custo, >> esse é o ponto.
>> Então, vamos lá, ó. Eh, >> e aí tá falando de custo de dinheiro, não só custo computacional. Custo é de dinheiro. É porque custo compassional no final é dinheiro. SPU o que eu tô botando lá, né? Eh, poxa, eu uso o no sequel porque ele é barato e rápido, só que eu tenho o tenho o custo alocado em outro lugar, na gravação do dado.
Se eu tiver um custo muito grande para ficar toda hora mudando a gravação do dado, eu vou começar a ter várias perspectivas do dado, vou ter várias tabelas com dado duplicado e manter esse dado duplicado vai gerar custo de desenvolvimento. Então, aonde eu vou alocar o custo? No banco ou no desenvolvimento?
Então a gente precisa fazer uma uma arquitetura decente, né? E você pede perde a rastreabilidade do da da onde atacou de fato a a qualidade do >> C. Cara, vou te falar, eu tô tá tô com um cenário desse lá no no sistema que a gente trabalha, né, que eu precisava retornar todas as promoções associadas a uma estrutura comercial. Essa estrutura comercial é um dado hierárquico, né? Uma estrutura está dentro de outra. nós gravamos as promoções por estrutura.
Então, conforme eu eu tava consultando uma promoção eh numa num nível intermediário, eu precisava retornar todas as promoções que estavam nas associadas às estruturas filhas dela, descendentes >> recursivamente.
>> Recursivamente. E também eu precisava achar todas as que estavam a atreladas e nas estruturas ascendentes. Então você tinha que pegar o nó mãe e recursivamente descer todas as as estruturas para gerar uma >> uma consolidação, >> uma visão toda. É. É. Aí pensa só, se eu tenho eh uma o primeiro nó da árvore e essa árvore ela tem cinco níveis. Cada nível, se eu tiver cinco filhos, poxa, eu vou vou ter o fatorial de cinco.
>> Cinco. É. Eh, eu não sei, eu nem sei falar qual que é o fatorário de cinco, mas se eu tiver sete níveis, eu vou, enfim, o >> eu lembro, eu lembro disso nas aulas de análise de algoritmos, mas é um é um algoritmo exponencial.
>> Exato. E o ponto é, eu vou fazer tudo isso de consulta, porque se se eu gravo os dados pela pela chave, que é a estrutura comercial, >> eh o volume, o número de consultas vai ficar gigantesco.
>> Então, >> aonde você precisava representar esse dado? Onde gerava essa demanda? Na aplicação era um era um backoffice. Era um backoffice.
>> Agora eu vou te fazer uma pergunta. Pera aí, pera aí, pera aí.
Eh, aí o ponto é o seguinte, >> eu tenho uma pergunta capsiciposa.
>> Então, o ponto é o seguinte, né? Como é que eu tive que resolver esse problema?
Eu tive que na hora de gravar o dado, eu tive que replicar essa informação e aí eu diminuí muito o meu o meu volume de acesso, né? Eu garanti que quando eu tivesse que consultar o dado, eu faria um acesso só a um nó e ele ele me teria ele teria todos os as informações dos filhos e aí depois eu consultaria a estrutura eh ascendente em outra em outra tabela, né, que eu tinha.
Mas o que que eu tô querendo trazer aqui? Não é só sobre a solução A ou B, tá? O ponto que eu tô o Não, eu vou responder sua pergunta. Eu já sei, eu já sei qual que é.
>> Eh, mas o que eu tô trazendo aqui é assim, eu gastei muito tempo para resolver um problema que se eu tivesse num banco de dados >> eh sequel, eu teria resolvido com uma consulta em meia hora.
>> Uhum. Então, fazer esse desenvolvimento que eu comentei aqui demorou duas semanas, porque até eu achar a resposta que eu precisava e depois implementar e garantir a a integridade desses dados que eu tava salvando, enfim, né? Demorou duas semanas, mas a consulta é rápida para [ __ ] né? Eh, então o que que eu tô trazendo aqui? Eu tô trazendo um contraponto, né? Eh, é custoso, é caro.
Quanto custa o tempo de um desenvolvedor sénior por duas semanas? Fora a o teste que a gente vai fazer nessa funcionalidade, fora eh a manutenção disso no futuro. Ah, se eu tiver uma alteração nas estruturas, eu vou precisar construir outra outra funcionalidade para garantir isso, né?
Eh, então o o que que qual que é a nossa missão aqui nesse episódio, né? mostrar esses tradeoffs, né? Poxa, é, qual que é o, quando que eu escolho uma solução?
Quando que eu escolho outra? Eu preciso conhecer o problema.
E aqui, né, até posso fazer pergunta?
Pode, pode fazer sua pergunta.
>> Nesse caso, por exemplo, porque você você parcialmente já respondeu porque era um problema que deveria ser resolvido com cicle.
Perfeito.
>> Não seria, não seria o caso de pegar esse dado que transacionalmente ele tem uma característica que é mais atômica, mais individual, mais granular para trabalhar bem com no cicle. Seria o caso de ingerir esse dado numa camada analítica, desnormalizar o dado? Não, eu tô eu tô no mundo, eu tô eu tô no mundo transacional, eu tô no eu tô no backoffice. Aí você vai criar uma dependência do seu transacional lá com o um analítico. Nesse caso aqui, é o analítico, talvez no mundo transacional, >> não deveria estar no mundo analítico.
>> CAS, no meu caso, >> porque é uma consolidação, né?
>> O que você tá falando é uma hipótese que pode se aplicar a outros cenários.
No meu caso, que é meu, não é seu, o brinquedo é meu.
>> Eu tô aqui para discordar, provocar, >> mas não. E aí eu vou até chegar nesse num outro ponto que vai resolver isso aí que você tá falando, mas aqui, né, é um dado transacional. E e olha só que interessante, né? Vamos trazer um pouco mais de contexto real, né?
Eu tenho uma solução que é CRS. Hoje eu tenho um backoffice legado que eu leio ele e eu levo ele para um no sequel.
E aí o que que acontece, né? Essa consulta que eu precisava expor para alguém, do jeito que me foi vendida a necessidade, a gente foi colocar ela no no ciclo, porque a gente já tava trabalhando com sistema novo que a gente tá modernizando e a gente não queria fazer nada no legado.
>> Uhum.
Perfeito.
Agora isso isso faz uns uns 4 meses, né, que me foi requisitado. A gente começou a solução de um jeito, aí depois no meio do caminho mudou o pedido e aí eu tive que resolver desse jeito.
Mas o ponto é que se eu soubesse tudo isso que eu sei hoje, eu não teria resolvido nessa camada do no ciclo. teria resolvido lá no meu backoffice, porque justamente agora depois de 4 meses, né, o time está preparado para começar uma nova demanda, que é a gente vai a gente vai modernizar o backoffice.
>> Uhum. E aí a gente vai eh usar um banco de dados cco porque a gente vai continuar com a estratégia de CQRS, porque eu vou eu o o o backoffice é são poucos dados e e aí >> você leva consolidação direto pro backoffice.
>> Eu eu no backoffice eu vou eu vou trabalhar com ele transacional, vou levar ele tudo vou trabalhar ele eh tudo normalizado, bonitinho. E aí, conforme eu tiver os eventos eh de negócio acontecendo nos dados, né? Então, a promoção publicada, nessa hora a a eu tiro uma foto e é essa informação que eu tenho que levar lá pro no sequel para que eu consiga responder para o sistema de captação, no meu caso.
>> Pera, deixa eu ver se eu entendi. Então, você tem, você vai ter o seu transacional com no ciclo com performance, >> não é? meu transacional, o meu backoffice, meu backoffice vai ter um ciclo pequenininho.
>> Não, mas o que o que roda a promoção, as campanhas, é isso que eu chamei de transacional. Bom, tá bom.
>> É esse cara que tá tá rodando ali.
>> Meu meu motor, o meu motor de promoção, que nesse caso aqui a gente tá falando do sistema de de motor de promoção, inclusive a gente já falou bastante nos outros episódios, né? Ele ele tem que atender um volume de acesso exatamente.
>> Tá. Aí você vai capturar eventos aqui e vai levar pro backoffice como ciclo.
>> É o contrário.
Eventos acontecem no backoffice porque o backoffice que mantém o dado.
>> Mantém tá. É que é onde comanda a a que gera o input da campanha. Então, >> exatamente.
>> Ah, tá. Entendi. Entendi.
>> Exatamente. Eh, então, nesse >> a campanha não nasce lá. Ela nasce no backofice, faz todo sentido.
>> É evidente.
>> É >> por isso que eu tô aqui.
>> Eu senti uma cutucada nesse evidente.
Mas tem limitações.
>> Quero falar com você agora que ainda não conhece a Clever. Clever é uma empresa que já tem mais de 3 milhões de usuários em 30 países com 30 idiomas diferentes, que tem trazido soluções em blockchain, criptomoedas e ativos digitais. O objetivo da Clever é te dar liberdade financeira para operar esse mercado de cripto. Então, se você acredita nisso, se você acredita nessa liberdade, você já pensa como a Clever, vai conhecer os caras, é clever.O. Estão contratando também pessoal para trabalhar com cripto, com blockchain. Então, se você tem interesse, se você tem conhecimento nessa área, procura a Clever. Se você gosta de criptomoedas, se você opera no mercado, você precisa conhecer a Clever, precisa conhecer as soluções da Clever.
Então o endereço tá aqui embaixo no vídeo. Para quem não tá no YouTube é clever. Vai lá, vai conhecer que realmente é um mercado sensacional.
[Música] O ponto aqui, né, é que a gente a gente precisa entender essas necessidades.
Então eu fui eu fui colocando casos reais aqui, né, conforme você foi perguntando tal, para entender. Poxa, banco de dados no ciclo é maravilhoso.
É, mas ele te ingessa demais, cara. E aí você vai pagar o preço, se você não planejar corretamente, você vai pagar o preço no teu tempo de desenvolvimento. E aí o negócio vai falar para você: "Poxa, mas eu esperava que essa funcionalidade seria mais rápida". Aí você vai responder: "Eu também.
>> Pois é, >> eu também". Eh, então assim, tradeof, né? E aí, por isso que o arquiteto tem que estar sempre esperto, cara. Eh, e aí você vê, né?
a a alta gestão até muito sensibilizada pelo preço, né? Poxa, solução no ciclo tava muito mais barata, tava com comando direto, olha, eu quero tudo no ciclo.
Só que quando você começa a estudar a necessidade, aí você fala: "Poxa, mas eu não vou conseguir fazer isso aqui, cara". Eh, então, trazendo pro caso real aqui, né?
Eu eu vou começar a fazer o backoffice, aí estava eu, né? Fazendo meu desenho de arquitetura. avaliando como que eu proveria as funcionalidades do que a gente tá licitando ali no no desenvol no na jornada, na no discovery, né? Eu falou, "Porra, a nossa nossa operadora, né, de que vai fazer alinha a nossa analista de de planejamento estratégico vai querer consultar pelo nome das campanhas. Ela quer fazer um tudo que começar com Natal. Como é que eu faço isso no banco de dados no cíquel?
Você não faz.
Você vai criar eh uma uma tabela para cada palavra, um registro para cada palavra que eu tiver numa promoção e e vai associar. Eu não sei nem te falar como. Eh, e aí a gente começou a fazer esse tipo de análise. Poxa, como é que o cara vai ser saltado? Como é que a tela vai ser? Qual que é o nível de maturidade da ferramenta?
A gente tá no meio de um mundo onde a gente fala muito do incremental, do ágil. Eh, poxa, vamos fazer aqui um teste rápido, tal, né? Eh, e se você tem o banco de ciclo que você tem que conhecer 100% a consulta que vai ser feita para você preparar o dado?
>> Mas aí não é o caso da gente pensar talvez uma solução de que seja híbrida, né? e que foi que você bem colocou de de repente a gente trazer para pros pontos onde porque assim e você vai ter uma característica de de funcionalidade que a consultora vai lá pedir todas as campanhas que você vai ter um por like por Natal, né? a an de planejamento estratégico vai fazer isso, >> isso, mas não é aonde a gente tem o core da transação que precisa ter performance do volume.
>> Exatamente. E aí, como é que a gente planeja talvez uma estrutura de dados híbrida onde eu consiga fornecer esse tipo de funcionalidade para quem precisa, porque aí é uma visão que não eh concorda que pesquisar todas as campanhas tem a palavra natal no nome não é uma visão document driven.
Concordo.
>> É uma visão ciclo.
>> Perfeito.
>> E só que eu tenho o mesmo conjunto de dados e eu deveria ter uma solução híbrida que eu conseguisse trabalhar com o document drive numa ponta para dar vazão para essas transações e ter essa performance.
E onde eu não precisaria ter essa performance, eu ter um lado c onde eu conseguiria fazer isso. E é um [ __ ] desafio de arquitetura fazer isso. Concordo.
>> Perfeito. Eh, e aí eu acho que a gente tá falando aqui, né? Eh, aí e justamente, né, pô, quando que eu uso uma solução, quando eu uso outra e quando eu uso as duas.
>> Exatamente.
>> Eh, então, no nosso caso, eu eu fui falando aqui, né, algumas vezes e até vamos falar, explorar um pouquinho mais essa essa brincadeirinha. Deixa eu só pegar o gancho, porque o caso que eu te falei do do uso errado foi exatamente aí, foi desenvolvida uma solução numa empresa que eu trabalhei há um tempo atrás, que eu não vou citar o nome, mas é uma empresa de seguros azul que termina com mérica o nome.
Talvez as pessoas não vão identificar, mas eh quero era uma uma aplicação desenvolvida no Google Cloud usando Data Store, que é um mongo no cicle do GCP, né?
E cara, era um absurdo a fatura do GCP dessa aplicação, mas um absurdo, um absurdo. E ninguém sabia porquê, porque tinha poucos dados, tinham relativamente poucos usuários pro tamanho da base e era absurdamente caro. E foi feito por uma uma das big aí que estão aí no mercado. Procurem aí quem são as Big F.
Você tem 25% de chance de acertar. Eh, e aí, cara, aí foi chamado o time de arquitetura para entender porque que tinha tanto tanto problema de de performance na aplicação.
Inclusive, foi um cara que trabalhava com você que descobriu, um chinês.
>> Ah, o Shen.
>> Qual que era o problema?
O Google, >> ele é ele é Taiwan.
>> Taiwan.
>> É, Taiwan é China, velho.
>> Não é?
>> É. Não sei se eles se consideram da China não.
>> Se você é de Taiwan, comenta aqui. Ajuda no engachamento. Fala aí se é chinês ou não é. Se você é da China e não concorda também comenta. Ajuda aí. Se você é do Japão, também comenta. E >> ó, ó, PPT não compila também é cultura, né? Eu vou te falar uma coisa. Lá na, acho que na década de de 20, alguma coisa assim, né? Quando tava rolando umas tretas forte lá na China, tinha o partido A e o partido B.
>> Isso >> aí. O partido A tava ganhando.
>> Momente a deszverbal do PPT. É. Aí que acontece, passou um tempinho, o partido B que é o é o comunista lá, né? Eh, eles começaram a ter mais força, mais força, mais força e eles eles viraram, eles começaram a ganhar muito espaço, ganhar muito espaço no país, tal. E aí os líderes e os que estavam associados mais ao partido e a lembro qual que era o o se eles eram mais liberais, né? Eh, eles foram se juntando na em Taiwan e aí por isso que eles eh existe essa rivalidade.
Aí eu pesquisei na internet, talvez, >> mas tem até denominações diferentes. Uma é república popular da China, outra é república da China.
>> E aí tem a lei da da China única, né?
>> Tem. E é por isso que existe toda essa esse conflito lá assim, né? Mas realmente o esse esse ponto aí você falou do Shin, né?
>> Isso é fechando parênteses do xadrez verbal pro PPT não compila. Então, qual que era o problema? Eh, modelaram todo o banco de dados no data Store de uma forma que pegaram as tabelas que seriam sequel e transformaram em entidades do banco de dados. Só aí você já vê que o negócio não vai dar certo.
>> Então, e qual que era o problema da da qual que era o problema que gerava cobrança eh muito grande no no GCP? O GCPN não te cobra se você ter uma tonelada de dados lá, ele te cobra por operação de leitura e de persistência.
Então, cada consulta para montar uma tela, sabe o que acontecia com a aplicação? Ele lia a tabela principal e aí você tinha foren dentro dessa tabela principal que era um documento.
E aí a aplicação pegava uma propriedade daquela entidade e lia outra entidade como se fosse uma chave primária e montava a agregação direto no código.
Então, uma tela que você deveria pegar um documento modelado num banco no ciclo, que seria uma leitura, ele lia um documento e fazia tipo 50 leituras paralelas para buscar chave dentro dessas outras entidades e montar uma tela só. Como se não fosse suficiente, a gente descobriu que o cara fez um auto complite para buscar por nome das pessoas. Nossa, >> que aí era o por isso que eu falei do do por like por >> examente. Isso >> que cada vez que o cara digitava uma tecla, ele fazia uma consulta no no de numa entidade lá de segurado, sei lá, não lembro que era, e que estourava de operação de leitura, né? Então, foi um banco que foi modelado, eh, você forçou o quadrado no redondo, sabe? Você pegou um modelo que é sequel e botou num banco no sequel e fez o trabalho do SGBD em código. Cara, se isso não é crime, cadê cadê a legislação brasileira?
Pelo amor de Deus, cara.
>> Isso é crime, sim, cara. E o ponto que a gente tá discutindo aqui é é justamente, né, quando usar uma solução e outra, a gente precisa conhecer muito bem. Então, não é não é fácil. Eu eu confesso para você que olha, há dois anos atrás eu não tinha eh de de longe a a experiência que eu tenho hoje, sabe? Eh sobre o banco de dados no ciclo e realmente a gente precisa olhar para ele com cuidado, né?
E só para não ser injusto, Rod, desculpa te interromper, o contrário também existe. Quanto você não vê eh de gente salvando Jon inteiro, não canto tex no órgão, um blog no órgão.
>> É, exatamente.
>> É, é o, é o exatamente o inverso.
>> Exatamente. E aí, eu trabalho do arquiteto. Eu trabalho do arquiteto para olhar para isso, falar: "Poxa, o que que eu vou usar aqui?" E aí pega no gancho, né? Agora a gente tá a gente tá reconstruindo o o backoffice lá e, cara, poxa, graças a um trabalho de arquitetura que a gente avalia as processos de negócio, a gente avalia como a gente eh vai interagir com o usuário, quais são as funcionalidades que ele precisa, a gente olha pra pra solução e fala: "Bem, aqui não vai encaixar um novo ciclo, vamos usar um ciclo". E aí fica a pergunta: "Poxa, o que que eu faço para manter as duas as duas soluções conectadas, né?" Eh, e de novo, o trabalho de arquitetura. Poxa, existem padrões de mercado que te ajudam a manter isso. Eh, o CQRS, o command eh responsibility eh >> segregation query >> é >> query não é comand query segregation responsability.
>> Isso é então assim, a gente se preocupa em gravar de um lado, né? É, mantém. E aí a nossa gravação é pequena, porque são pessoas usando pessoas.
>> Mas aí você mantém duas instâncias replicadas ao mesmo tempo ou não?
>> Eu mantenho uma instância de no sequel e uma instância de sequel.
>> Ah, entendi.
>> E a de sequel ela responde pro meu backofice.
>> Então, as telinha bonitinha que as pessoas comuns eh utilizam, às vezes pessoas comuns internas da empresa utilizam, que são 10, 15. Cara, eu nunca vi esse tipo de solução. Sério, >> é um um banquinho, um post micro na cloud lá, acabou, faz as consultinha, tal, expõe não sei o que lá. Ah, outro backoffice precisa. Pera aí, outro backoffice é também é outra pessoa que tá operando ali, pá, bota no backoffice.
>> Mas aí você >> aí eu eu conforme eu tenho as evoluções de estado do meu objeto, da minha entidade que tá sendo trafegada. Então, no meu caso, minha promoção, minha promoção, ela é gravada como não publicada.
>> Uhum.
>> E em algum momento alguém fala, ela vai ser publicada. Pode ser por data, pode ser por eh umação estratégica, uma live que vai acontecer. Aperta o botão lá pra mulher poder comprar e pagando menos, né? Ah, puff, publicou. Nesta hora a gente leva esse dado lá pro pro no sequel. Por quê? Porque ele vai ser gravado de um jeito que a gente vai responder numa velocidade absurda, >> que esse é o command.
>> Exatamente. Não, esse é o query, né? O command é aqui, né? No >> tá. Você persistiu aqui.
>> Isso.
>> E mas aí essa replicação para lá você faz como >> eu faço, eu faço via. Aí eu tenho um programa, né? um programinha bobo que fica lendo aqui, ah, tem uma data tal, >> tipo CDC que faz uma >> isso. Aí você escolhe o sabor que você quer. Você pode fazer por evento, você pode fazer, poxa, tal um momento eu disparo um evento que vai lá pro outro lado, né? Aí você escolhe como você replica para lá que aí já leva no formato no ciclo e dá performance pro >> você vê, né? E aí são as estratégias de modernização que você vai aplicar no seu ecossistema. a gente eh começou a a modernizar esse ecossistema de promoção pelo motor que era mais crítico. Uhum.
>> Então o que que a gente fez no legado? a gente colocou um chupacabra lá, lendo a estrutura de dados do legado para fazer essa replicação pro no ciclo.
E aí eu eu matei toda a camada de exposição de serviços do legado e aí o meu minha aplicação nova começou a responder. Desse jeito eu matei 98% dos problemas porque a ferramenta parou de cair, né? Então foi nossa estratégia de modernização.
E aí agora eu tô evoluindo no backoffice, mas eu tô de boa porque assim, >> você deu performance onde eu precisava.
>> A empresa tá a empresa tá patrocinando agora. Ela viu, poxa, os car os caras entregam >> eh entregam o impossível. É o slogan da Web Bears, né? Entreg >> os caras são quem? Fala pra gente Bears.
A VBS >> quem quiser falar com a VMBS para >> quem quiser falar com a VBS pega pega o o Bom, você tem várias formas, né? Eh, tem o nosso site aí, tem um formulariozinho bonitinho lá para você inclusive ver esses episódios que a gente faz os nossos cortes, né? Eh, você pode também mandar um e-mail para contato@vibers.io.
Aí vocês vão falar com a com a Dérica.
Eh, vocês também podem mandar um e-mail para mim, eu vou responder, né? Até com perguntas. dele tá aqui embaixo. Se você quer só saber se o >> se o cara manja mesmo, se não foi suficiente episódio, adiciona esse cara aqui no no LinkedIn e conheça mais sobre a Vers aqui que a >> tem muitos cases aqui que a gente já bom, enfim, o cara tá aqui desde o episódio >> um >> zero.
>> Foi o zero piloto.
>> É verdade. É verdade.
Você que tá aí escutando esse episódio bacana e quer levar toda essa tecnologia, essas novidades pra sua empresa e não sabe como, chama o time da Vems. A gente pode ajudar vocês com desenvolvimento de software, com arquitetura de soluções, a entender os problemas que vocês estão vivendo e sair do outro lado com uma solução bem bacana. E se você tá escutando o podcast para aprender coisas novas, faz o seguinte, manda um e-mail pra gente no peoplecare@vems.
E você pode fazer parte também do nosso grupo de talentos. Valeu.
Agora o time do Relações Públicas vai gostar mais de mim.
>> E então é com isso, né, a gente conseguiu muito patrocínio, cara. E hoje a gente tá fazendo eh milagre lá, né? E literalmente entregando o impossível.
Eh, e agora a gente vai a gente vai evoluir esse esse backoffice, cara, eh, com tranquilidade. Estamos também escolhendo, né? Já falei um pouco aqui, né, da da do desenho de arquitetura que eu tô tô avaliando o negócio. Então, a gente senta com o time de o time de negócio que tá falando as dores deles. A gente também conversa com o time de eh jornada, né, de experiência, porque poxa, tá na cabeça desses caras, o que que vai sair, né? O que que o software vai precisar? A gente vai lá, ajuda, né, sugestiona também, né, para dar aquela direcionada. E aí tudo isso vira em sumo pra gente fazer as nossas escolhas de arquitetura. Então o e aí na Vermers a gente prega muito isso, né? O arquiteto ele ele tem que ser plural, ele tem que olhar tanto para eh tecnologia, um pouco do que a gente tá falando aqui, eh tem que olhar também pro negócio, tem que olhar para tendências de mercado até para poxa, eu vou reinventar a roda. Tudo isso que eu tô te falando aqui são padrões, cara.
Padrões que estão bem estabelecidos, né?
Eh, então o jogo o jogo é esse, cara. e aplicados de uma forma correta, né?
>> Com certeza.
>> Então, eh, eu acho que essa é a grande a grande mágica da área de arquitetura, né? É você conhecer bem os padrões, conhecer as boas práticas, mas aplicar no contexto de negócio da forma que você ser aplicado, né? Então, por exemplo, quando eu falei para você, pô, mas isso aí não poderia ser um ambiente analítico?
E a gente acabou falando sobre o mesmo conceito, mas eu não conhecia exatamente o ambiente que você estava lidando. Você tem um outro ambiente que é transacional, né, que é onde tá de fato o comando da ação que dispara a ação pro ambiente que é no cico, que que é de fato onde você tem a operação mais hardcore, né? Mas o conceito é o mesmo, porque quando a gente fala de levar para ambiente analítico, seria levar para ambiente sequel. E você levou para ambiente sequel, só que de uma forma fazendo a segregação com SERS, só que ainda dentro do ambiente transacional, né? Então a gente tem os conceitos aplicados para um contexto de negócio que faz sentido para onde você tá atuando, né?
>> Sim. Inclusive, eh, você falou de de analítico, né? Eh, lá a gente tem o analítico consumindo todas as informações, cara, de pedidos, de dessas promoções para depois eles validarem aí em outra camada, né, a a validarem se aquelas promoções de fato influenciaram os pedidos que foram feitos, né? Então, um aí sim, aí meu é um volume de dados absurdo.
>> É isso vai fazer inferência absurda de coisas que você nem imagina. Então, é ainda é outra arquitetura que também usa essa parte de eh engenharia de dados, né, cara. Então, tá assim, tá o cara que quer, né, eh fazer uma aplicação boa, ele tem que usar todas as capacidades, né? Não, não uma só, mas assim, poxa, bota ali um sequel do jeitinho certo, pensa na aplicação que vai consumir. Eu, o grande segredo que eu que eu aprendi aqui, né, nesse nesse período usando e assim o sila, né, é a ferramenta que eu tô usando, já usei o data Store lá do Google, eh, usei já o Dynamo DB também da WS. Eu gosto dos dois, eu gosto do DAT Store, gosto do Dynamo. O problema do Diamond que ele é proprietário, né?
>> É.
>> Aí você depende do SDK dele na sua própria aplicação.
>> Sim.
>> Apesar que os dois, tanto store quanto da é uma mongo like, né?
>> Sim.
>> Consegue trocar pelo mongo de uma forma em muito, entre aspas, transparente.
>> É o próprio próprio Dynamo também, ele é muito parecido com o os dois são muito parecidos com o Sila também, tá? Uhum.
Eh, >> mas o Sila é ele é colunar, não é? Acho que no episódio que a gente falou com o Fabrício, ele falou que ele era colunar.
>> Ele armazena o dado de forma colunar, mas você acessa ele do mesmo jeitinho assim, >> documente like também.
>> Exatamente. É.
>> Ah, tá.
>> Eh, mas o que eu ia trazer aqui, né, é que o que eu achei legal do Sila, eh, que você pode ter a sua a sua instalação nas suas máquinas.
>> Uhum. É, e aí e você não tem o custo que você tava falando que você paga por >> por leitura, por leitura. Aí você consegue ter mais flexibilidade com custo, né, cara? Você compra lá suas licenças e ele meu, ele resolve tudo.
>> Sim. E você pode fazer uma um estanciamento desse em nuvem, ter a performance e a utilidade da nuvem sem e de acordo com a sua com a sua volumetria, né?
>> Com certeza. A gente inclusive eh usa até ele cincando, porque o próprio Sila também tem um mecanismo de sincronização de dados, né? entre os nós do do cluster. E o cluster ele pode ser multidata center. Então a gente a gente tem um cluster que tem eh um alguns nós na OCI.
>> Uhum.
>> E outros nós na WS >> que seria o equivalente ao multiaz da própria WS.
>> Exato. E e aí na WS a gente tem em São Paulo e na Virgínia. Então ele ele replica entre os três ou três datacentes.
>> É porque a grande vantagem de você ter um banco gerenciado é o multiaz de ter replicação na própria nuvem, né? Nesse caso você consegue consegue ter inclusive entre os vendors das nuvens.
>> Exatamente. E a Sila, ela tem um uma solução enterprise que ela gerencia suas máquinas.
>> Como é que você vai trazer eles aqui pra gente conhecer eles?
>> Vou trazer, vou trazer. É, nós somos parceiro deles, né?
>> Então, trazer eles para botar o logo aqui também. Vou vou vou trazer eles, cara. Vou marcar esse bate-papo.
>> Vai ficar bom, hein? Os caras são monstro, cara.
>> E assim, se a Vem Bers, ela pode te ajudar, né, a a olhar para tudo isso e usar a ferramenta, meu, os caras da Sila, eles são tão monstro que se você tiver uma necessidade, eles vão lá e fazem para você. Cara, >> a gente lá na Natura a gente já precisou.
>> O Sila é um fork de uma outra.
>> O Sila, o Sila não é que ele é um fork, né? Ele é uma solução eh Cassandra.
>> Ele é um Cassandra feito em outra linguagem, né?
>> Em C. Ah, >> isso. Então, os caras lá da acho que de Israel, né? Tinha um framework que fazia tradução ali de de Eles tinham um framework em ser monstro.
Eles fizeram framework em ser monstro.
Eles precisavam de uma de um use case.
Ah, vamos pega aí, pega o Cassandra.
Vamos fazer o Cassandra em C. Meu, o negócio é monstruoso, surreal, surreal.
>> Tá, tudo que é feito em ser tem uma performance absurda.
>> É, é, exatamente.
>> [ __ ] >> Eu aí, bicho, você usando do jeitinho certo, cara, é surreal. Outro ponto que a gente tá falando, né, W? Eh, a gente tá falando de leitura escrita, né?
[ __ ] bichou. Quando você pega um banquinho desse aí do Dynamo, do próprio Dat Store, agora o Death Store já morreu já, né? É fireore.
>> Eh, cara, você precisa acessar o o banco por um um outro uma outra chave, você tá ferrado. Que que que que acontece? Você tem que criar um índice.
>> Uhum.
>> Aí você pode criar um índice global, né?
Um secundário índice global, um local, enfim. E >> esses índices custam muito quando você tá na nuvem, >> pô. Custa o dobro, porque você duplica a tabela, né? Os caras, os caras fazem uma >> uma tabela nova por trás, né? Exato.
Exatamente. E aí se você vai fazer uma um eles têm também uma solução de materializer também, né, que você pode mudar a chave, né? Então o ponto é fica caro também, cara. Se você acessar errado, bicho, esse essas soluções elas acabam que é o ponto que você trouxe aqui, né, daquela daquele outro aquele outro caso que os caras modelaram errado, né?
Então é muito importante você olhar pro banco no sequel com cuidado, carinho e cuidado.
>> Carinho e cuidado. Exatamente.
>> Carinho. Cuidado.
>> É, é que da mesma forma eu faço um paralelo muito objetivo quando eu falo com desenvolvedores ou ou arquiteto de dados que estão tendo esse primeiro contato com com esse outro mundo que é muito parecido.
Claro, dadas devidas diferenças, mas os cuidados que você precisa ter, trabalhar com sequel no cante quando você precisa mudar de paradigma de linguagem de programação.
>> Sim. Então, você trabalhar com uma linguagem de programação orientada objeto, trabalhar com uma linguagem recursiva, trabalhar com uma linguagem modular ou ou qualquer outro tipo de paradigma de linguagem, cara, no fim é programação, só que você tem que ter outros cuidados e outras formas de ver a solução.
Não, você não pode falar de objeto numa numa linguagem que é procedural, por exemplo, né? Então, quando você troca o paradigma, acho que isso era seria até um bom uma boa analogia para fazer, né?
>> São paradigmas de bancos de dados, né?
>> Então, >> não se apegue tanto, por exemplo, a chaves, a integridade relacional. Cara, quanto eu já não discuti com DBA para falar de nocico, que o cara insiste em integridade relacionada. Não tem, >> não tem, cara. É outro mundo, sabe? É igual você falar sobre herança numa linguagem que é procedural. Não existe, não existe herança nesse, esse mundo é diferente, né? Aqui as coisas são feitas de um modo diferente.
>> Você, você falar de integridade, né?
Você tem, se você tiver uma relação tão forte, você deve deve guardar tudo no mesmo documento.
>> Isso é é exatamente >> porque aí você tá é uma entidade só, né?
Se você tem uma dependência tão grande.
>> Ex. E aí você e aí no eles chamam de coleções, né? Aí na coleção você vai ter os seus objetos e eles vão estar alinhados e pronto. Aí você se vira lá e acabou.
>> E cada linha de coleção, inclusive ela pode ter eh propriedades e colunas, entre aspas, diferentes, né? O que é muito louco de você imaginar um negócio desse no mundo que é sequel, né? Então, pô, mas pera aí, como assim?
Eu tenho uma linha que tem coluna X, Y, Z e a outra tem X Y. É uma outra visão de ver as coisas, né? Você vê, né? Nós temos aqui eh uma audiência também online nos assistindo, tá mandando até pergunta aqui para nós.
>> Olha só, mesmo sem tá online, a gente tem online que mandando pergunta. Salve, salve, Molina.
>> O o meu amigo tava tava falei, né, sobre esse podcast aqui, ele falou: "Poxa, eu vou te mandar umas perguntas lá", né, cara? Ele manda aqui, ó, pô, como é a relação entre as entidades tratadas e neste tipo de banco de dados que acabamos de falar aqui, né? Pô, se ela é tão forte assim, bota na mesma coleção, né, >> cara? Que susto. Achei que tinha vazado o link.
>> Operador achando que vazou o link.
>> Quem vazou foi Eu sei quem vazou.
Não, mas esse é um ponto interessante que eu acho que vale uma discussão. Se você tem entidades que são no ciclo bem definidas, mas você precisa ter uma visão que une essas entidades, você deveria fazer o quê?
Eh, eu você assim, ó, o o tava perdido aqui >> porque ele mandou umas perguntas, cara, que eu acho que vai dar outro podcast e tão tão boa as perguntas que ele mandou.
>> Então, mas vou, deixa eu voltar nessa.
Você tem relação entre entidades que são muito bem definidas. o seu core trabalha dentro dessas entidades.
Se o seu core trabalha com uma junção muito grande dessas entidades, elas não deveriam ser entidades diferentes, como você falou, deveria est dentro da mesma collection.
Caso você tenha uma sinergia num nível de negócio diferente, como foi o exemplo que a gente deu do backoffice, aí você deveria levar isso para um outro mundo que você trabalhasse de uma forma que fosse esquelizável. Perfeito. Então, é, vamos pegar o seguinte, né? Você falou de uma forma extremamente abstrata, que responde de fato uma pergunta. Vou vou ler a pergunta.
Eh, >> arquiteto é abstrato, cara. Ninguém entende a gente.
>> Ó, no cicle realmente substitui bancos de dados relacionais ou é apenas um mal necessário para escalar quando o design relacional falha?
>> Não, não substitui. Mas para cada ferramenta você para casa, para cada caso você usa a ferramenta certa. que foi o que você tinha respondido, né?
Então, eh, realmente a pergunta, a pergunta que ele mandou aqui faz todo sentido e a gente veio discutindo bastante sobre isso, né, no episódio. É, é o caso de você olhar pro seu problema e usar a ferramenta certa. Só que tem um tem um ponto aqui, né, que é preciso é você entender que se você não conhece bem seu problema, cuidado ao escolher no ciclo.
>> Você vê que lá no quando quando tem tem o Martin Follower, né, ele sempre fala eh ele sempre tem muitos conceitos legais que ele coloca lá no no site dele. E tem um que ele usa que é o Monolitic first. Então, poxa, faça o monolito primeiro, cara, porque fazer um monolito é muito mais fácil. Sim, >> para você ir para uma arquitetura de microsserviços, você precisa conhecer tão bem seu contexto para você conseguir separar ele nos pontos.
>> A menos que você tem uma noção muito grande para onde você vai escalar e para onde você precisa de fato segregar, você não precisa ter, você vai ter um overengineering muito grande no começo, né, cara? Então, começa no modo cara.
Perfeito. Então, eu tô usei essa analogia para falar aqui também, poxa, se você não conhece tão bem o teu negócio, pensa lá no no ciclo mais.
É que o ponto é assim, né, v o muita gente confunde o no ser antiicle, não é isso? Exatamente.
>> Não existe uma guerra entre eu sou nocle ou eu sou PT ou sou Bolsonaro. Isso não existe no no sequel e no se >> É, não deveria existir em lugar nenhum, nem da política, nem aqui, né? Mas enfim, >> exist. Mas o ponto é que o nocle ele não veio substituir o cicle. Exatamente.
>> Ele veio para complementar complementar para dar mais performance em casos onde eu não preciso ser tão flexível no acesso à informação. Então ele é, eu pego um pequeno grupo de informações que eu trabalharia com com se algum grupo de de casos que eu trabalharia e eu consigo trabalhar com no cicl para ter muito mais performance, né?
>> Eh, continuando aqui a lista de perguntas, né? Eu eu deveria estar perguntando para você, por que que você quer convidar tá perguntando para mim?
Deixa eu l as perguntas, >> cara. E é é fenomenal, né? A pessoa quando é inteligente, as perguntas que ele tá fazendo aqui, cara, é é é assim para para quem vai começar a estudar esse assunto, né, de de no cicle, tem que olhar para isso, né?
>> Vamos lá, ó. Como estabelecer esse faz agora?
Meu amigo Rud, >> fez falta você tá aqui agora para responder esse como estabelecer modelos de governança de dados sem engessar a flexibilidade do nocico?
>> Você vê que fenomenal. Pergunta perfeita, cara. Perfeita.
>> E aí?
>> É, é me pegou de calça curta porque de verdade a gente como >> Não sei se >> Rud, na próxima que você vier você responde.
>> Vamos, cara, vamos confabular. Vamos confabular porque o ponto é justamente, né? Eh, e aí a gente precisa até falar um pouco sobre estabelecer governança, né? Porque pessoal acha que governar é você embarrerar, não pode fazer e acabou, né? Você só vai fazer se eu deixar. Isso não é governança. Só vai fazer se eu deixar. Eh, governança é você fazer o que é necessário e você eh declarar o que está fazendo e manter isso eh documentado de forma que você eh entenda a relação daqueles dados, né?
Então, governança não é você embarrerar, é você ter a visibilidade do que está acontecendo e aí com por meio da visibilidade você eh direciona, né? E aí, se você entende governança como eu falei aqui agora, então o problema não é você governar o dado no ciclo. Eh, o problema é você garantir que as evoluções que estão sendo feitas no modelo estejam devidamente e documentadas, organizadas, evidentes para que a corporação veja e não só a aplicação.
>> Você foi feliz na sua na sua observação.
>> Fui feliz.
>> Feliz. E eu acho que você pegou o seu o caminho feliz, mas por exemplo, num banco, no cicle document driven, eu posso ter propriedades que são relativamente discrepantes das outras.
Como que eu governo para que o o feliz do do >> do desenvolv Porque >> traz traz isso para um cenário mais concreto, >> tá beleza? Eu tenho lá endereço, entidade cliente, nome, endereço, telefone, etc.
No sequel, eu posso ter eh propriedades diferentes em cada entidade. Eu posso ter um que tem nome, telefone, tem um que tem nome, endereço, tem um que tem nome, telefone, endereço e observação.
Eu tenho uma liberdade nisso. Cada documento tem a sua própria característica. Num banco de dados é sequel, você também tem campos noble.
>> Sim, mas aí eu posso colocar eles como noble ou não no sequel.
>> E e onde é que tá onde é que tá a constraint do campo? No banco, certo?
>> Isso.
>> E na e no caso do no ciclo, onde é que tá a constraint?
na aplicação.
>> Então, mas aí >> e aí a sua preocupação não é a sua preocupação não é o banco, é como é que você expõe essa informação.
>> Mas esse é o ponto que eu queria te perguntar. Como que eu governo fora do banco? Tem que ter uma governança que tá na produção você eh tem frameworks que te ajudam a fazer isso, né? Eh, no Java é Fly DB, Fly, acho que chama, chama, a gente tem um frameworkzinho que ele gerencia essas evoluções que você põe no banco e aí pronto, você consegue exportar isso. Eh, lá a gente usa também muito eh no Node JS, né? Aí a gente tem o migrations, que são comandos do banco que você vai colocando ali. Pronto.
Então, eh, assim, tendo a definição de governança, que foi que eu comentei, né, que é você deixar evidente o que está acontecendo ali com os dados, eh, basta você colocar nas suas aplicações esse tipo de >> Adoro como você morde a isca. É aí que eu queria chegar, porque você tem ferramentas para que você >> consiga gerenciar o contrato, digamos assim, ou esquima sem que você chegue direto na camada de banco, né? Então você consegue ter como você gerencia, por exemplo, o contrato de uma PI ou em esquima de um de um retorno de um Pub, etc. você também consegue tratar isso nas aplicações com com alguns controles.
>> Eu acho que um ponto aqui que a gente tem que desmistificar, né, é que talvez passado a gente achava que o desenvolvedor ele era desorganizado.
>> Eu ainda acho que >> não, mas não é não. E e eu acho que o ponto assim, né, a gente dá essas capacidades para o desenvolvedor acaba fazendo ele entender a importância dessa exposição de dados de de informações, né, sobre os dados, sobre o que a aplicação faz. No passado, poxa, no passado a gente falava, pô, documenta aí. Ninguém queria documentar nada, né?
Hoje o desenvolvedor adora fazer um read mmd, cara, da aplicação para deixar tudo bonitinho. Adoram um swager para deixar eh o o os end points da aplicação.
>> Até porque hoje com comando você gera isso quase que automaticamente, >> mas você vai lá e coloca os dados, coloca a informação bonitinho. Ele ele por mais que você gere com comando, eh, a descrição da informação que tá sendo trafegada, da operação que tá sendo feita, ele gosta de fazer, sabe? É >> que antes dava trabalho para fazer, agora não dá mais trabalho, né? Ah, então, mas é porque >> você vai lá, descreve, gera, pô, é lindo, né? É muito mais bonito.
>> É disso que a gente tá falando, né?
Então assim, resposta aqui pro Molina, né, sobre essa pergunta perfeita, né?
Como é que você governa? Você faz a aplicação governar para você e te dá essa informação, né? E aí você >> utilizando ferramentas e frameworks que que são feitos para isso.
>> E e você como empresa, você também tem que você tem que deixar de ser burocrático. Ah, eu quero informação, eu não quero eh colocar um um gate aqui, né, que não vai passar ninguém se eu não deixar, né, pô, eu pode passar desde que você me dê essas informações para governar isso, né? E e você tem que ter uma operação que aceite esse tipo de de governança e esse novo modelo, né? Não adianta você ter uma governança de dados que só aprovec, cara, não vai funcionar. É um outro mundo. O cara tem que est preparado para poder governar de outra forma >> os dados que são produzidos num outro tipo de natureza, né?
>> Perfeito.
>> Outra pergunta.
Qual é o principal tradeoff em utilizar bancos no se? O que perdemos com essa abordagem? Acho que a gente já comentou bastante sobre isso.
>> É, a gente falou bastante sobre isso no no episódio, né? Acho que vale lembrar aqui que não é um ou outro você tem que escolher e eh quando você vai usar um e outro. Então você quando tá usando um um no sequel, você perde em flexibilidade.
Flexibilidade de consulta e você ganha.
>> É de consulta. Isso que eu fal.
Porque para desenvolver é muito mais flexível, né, meu p?
>> É exato. Perfeito. Eh, você perde em flexibilidade de consulta e você perde produtividade quando você precisa de novas consultas e você também tem mais complexidade em em gerir os dados que foram desnormalizados.
Então, mantê-los atualizados é mais complexo. Você precisa programar mais, né? O que que você ganha? desempenho, muito desempenho. Você, se você tem uma aplicação que ela é orientada a performance, a entrega rápido, você precisa pensar nisso.
>> Você que tá muito mais no core do desenvolvimento que eu, o os frameworks hoje de D, eles já lidam o LM lidam bem com >> RM tem o RM, tem o Java, tem padrão para para você mexer no no RM. Já você já tem uma camadinha ali agnóstica. o framework, né? Então é igual eu tinha lá no no oyernate, né? Para >> e falar de performance, falar de hybernate. É, >> a gente tá falando de Jesus e o diabo, né?
>> Não, mas o Renete não é esse esse maldoso da forma.
>> Bateu o coração já agora.
>> Não, não, não ofendeu. É, é o ponto. É, você precisa saber utilizá-lo. Mas enfim, >> cara, o Hbernete é um caminhão. Fala, >> não é? vai se você, se você usar ele direitinho, fazer os relacionamentos entre as entidades corretamente, se você conhecer como ele funciona, aí você vai ter muita produtividade.
>> Agora, evidente, se você não tiver nessa maturidade, aí você vai você vai tomar pau, né?
>> Senti uma mágua, uma mágoa no seu coração.
>> E eu vou te falar, cara, que hoje em dia até com a própria Iá, ele te ajuda, a Iá te ajuda a fazer direito lá os mapeamentos, cara. Mas você não vai usar hybernate com no ciclo?
>> Então você não vai, né? Mas por que que eu cheguei nesse ponto? Eu falei: "Olha, da mesma forma que você tem os mapeamentos das entidades com anotações e aí você eh mapea o a tua tabela do banco com o objeto do Java, você também tem isso para para no sequel, sabe?
Então eu tô falando que você tem essas especificações já. E aí, meu, >> tá tá fácil.
>> Produtividade pro desenvolvedor é a mesma, né? Exatamente. Exatamente.
>> Então aqui que eu v Essa é para zoar o Vamos ver. Se a sua aplicação tivesse sido escrita em Java, você ainda precisaria de não se cont performance?
>> Ou seja, o seu problema estaria mais no banco ou no código?
>> Pergunta. Boa pergunta. É isso.
>> Eu acho que um, vou responder essa diretamente, Molina. Eu acho que um banco no ciclo rodando com node ou com Python é um turbojato eh absurdo de performance. A gente tá falando da mesma da mesma espécie ali, eh, ultrassônico, né?
por natureza, o Python, principalmente, ele é ele é ele é ele é feito para tratar com dados, né? Então, a camada de acesso a dados do Python é absurda, tanto no IO direto com arquivos. Então, o Python ele já é documenting por natureza, porque trabalha com dicionários, com a Reis, etc.
Ele é feito para isso. Então você trabalhar com Python, com um banco de dados no cicle, cara, é perfeito. É tipo, é basicamente você lê no banco de dados o que você trabalha em memória já no próprio Python. Ele ele ele funciona assim, né? Quem tá me ouvindo que trabalha com Python sabe, Python é dicionários e objetos, né? Então é nativo para isso. O Node JS também, porque o Node baseado em Jon, etc. Por ser linguagem Java, você tá no território conhecido, né? São linguagens interpretados. Então, obviamente para pr para aplicações que são muito complexas, você pode ter um problema de performance em escala, né? Não em transação, mas em escala.
Eh, e não tem JVM, né? JVM >> você teria problemas de eh desempenho se você tiver muita muita escala com Node JS e >> se você você teria um problema de escala com Python e com Node S, por exemplo, se você tivesse um monolito que você não teria em Java, porque você carregaria uma vez só, teria aquele load absurdo e você teria o a transação muito mais rápida, >> né?
Se você tiver isso bem eh distribuído paraa computação distribuída, o Node, o Python funciona muito melhor, né? O Java em escala para grandes aplicações, naturalmente, pela própria característica da JVM, funciona muito melhor porque não tem que interpretar o código da execução, >> né? Eu eu acho que o tudo que você falou é verdade, cara. Concordo.
>> Não acredito.
>> É isso aí.
Cadê o Meu Deus!
>> Não é? E o o próprio Molina falou aqui, né? Vou tirar sarro, né? Mas eu eu acho que ele ele quis trazer aqui um pouco da questão do poxa, eu já tenho um mapeamento de objeto no Java lá, né? No ORM. É tão diferente assim eu trabalhar com um um no sequel, né? Eh, e aí a gente falou bastante no próprio episódio sobre isso, né? que é a forma com o o RM, né, as consultas e acaba acessando várias tabelas e enfim, tem que ser >> e a camada a camada do dado ali, ela fica bem diferente mesmo, né?
>> Peraí que o operador quer falar.
>> É. E a curva de aprendizado pro nocic.
Eh, >> nossa, esse esse operador é muito [ __ ] velho. Ele é ele é elitizado. Você vem aqui, vem fazer essa pergunta aqui no microfone. Vem cá. Pera aí. Vem cá.
>> Caraca, agora eu perguntei como negócio agora, hein?
>> É.
Tudo bem, gente? Quero saber o seguinte.
E a curva de aprendizado para no Cicle?
>> Essa pergunta aí vale >> vale o episódio inteiro, cara.
>> Eh, a gente a gente tangenciou essa resposta, né? Mas eu acho que faz sentido a gente consolidar ela. A gente aprende na faculdade, pelo menos os profissionais aí de mais de, sei lá, 7, 8 anos, né? Eh, a gente aprende sequel, então existe uma curva de aprendizado pra galera.
>> Aprende semestre, você aprende as seis formas normais.
>> Exato. E aí os outros os outros sete sem você continua você continua reformando eh reforçando eles, né? Então, realmente, cara, a curva de aprendizado ela ela é maior. Você vai contratar profissionais hoje que eles não são especialistas nisso e eles vão apanhar sim no começo. E aí vem um pouco da que a gente foi discutindo aqui, meu, se você for dar para qualquer um fazer a modelagem do seu banco no sequel, você vai gastar mais dinheiro, porque o cara vai fazer uma, vai fazer duas, vai fazer três, vai tomar um monte de porrada até sair direito, né?
Então tem que tomar cuidado. Eh, >> a gente tem que lembrar que o Banco Nocle ele ele tem uma visão diferente acadêmica, porque ele nasceu da necessidade de ser document driven, né? Então ele começou lá na ponta com a necessidade de eu persistir XML, etc., como como documentos que eram banco de dados em si e que isso não é exatamente uma entidade canônica do mundo acadêmico.
>> Exato.
>> No mundo acadêmico você aprende que cada aplicação é um mini lake house até hoje, né? Então você tem ali as formas normais, etc. E que o mundo normal ele é um pouco diferente, né? Exato.
>> Não sei hoje, posso estar errado. Vocês, meus amigos professores do Maquin até hoje que eu tenho contato, me desculpem caso a gente tenha reformado o currículo, mas a gente entende que o banco de dados hoje é um mini lake House, que é o que a gente vê hoje como Lakho House, né? Eh, mas o mundo transacional hoje ele é muito mais dinâmico, ele é muito mais baseado em documentos, né? Então, então assim, a curva ela é grande e ela é cara, porque se eu errar, bicho, eu vou pagar mais, né, para ajustar o o sequel, ele é mais fácil, mais flexível. Vou ajustando as consultas, se eu precisar fazer de um jeito, do outro, bota índice aqui e é tudo barato, né? Então, realmente, >> faz um tuning da query, botail, bota mais cor no exadata.
É >> o que você não consegue fazer no ciclo.
>> Exato. Exatamente.
>> No ciclo.
>> Então, boa pergunta.
>> Mais alguma pergunta, vereador?
>> Não, acho que era só essa dúvida.
>> Obrigado, viu? Obrigado pela audiência, pelo prestígio, pela contribuição.
>> Acho que a gente cobriu bem, né?
o o ponto aqui, acho que a gente pode fazer um compilado agora final sobre considerações, sobre eh se level, o cara que tem poder de decisão, o cara que tem o o de fato a visão mais abstrata da estratégia de de tecnologia da empresa, quando pensar em tomar a decisão de trabalhar com banco ciclo, banco no cicle e principalmente Quem tá no conforto do cic até hoje e que tem gargalos de performance, esse cara dá o primeiro passo e começa a olhar para esse outro mundo sem tanto medo do vale da sombra.
>> Perfeito.
Eh, então, pro se level, né? Eh, poxa, presta atenção se o seu problema é desempenho, desempenho e custo, né?
Então, poxa, eu tenho tenho que melhorar meu desempenho ou a minha aplicação, ela tem alto desempenho porque ela tem muito, muitas requisições, muito volume, mas tá muito caro.
Avalia a possibilidade de trazer um banco de dados no ciclo para para atender as operações de consulta.
Eh, isso pode começar a te pode te dar dinheiro, porque aí você salvando esse dinheiro você consegue começar a evoluir teu software, evoluir tua a teu parque ali, né? Então, se leva quer saber de dinheiro, simples assim, né? Então, se você tem um desses dois problemas >> e não é seu dinheiro, você vai trazer benefício pra operação, pra performance, etc.
>> Exatamente. É. Eh, e quando você tiver olhando pro no sequel, eh, também aí pensando no dinheiro, né, eh, procure um especialista, né, não saia fazendo, eh, o seu time de desenvolvimento, ele vai, poxa, ah, vamos fazer e vamos sem estudar, não, vamos fazer uma poque, >> fazer uma po, >> vamos fazer uma poque. É, mas ó, a POC ela é complicada nesse caso aqui, justamente porque a gente tá falando da da falta de flexibilidade que esse banco tem, né? Então a POC tem que ser real, né? Tem que olhar para um caso de uso real.
>> Da po que o cara põe uma entidade só, aí ele testa performance, vai ficar maravilhado.
>> Exato.
>> Que funciona muito bem, que é muito rápido, mas ele não viu o problema inteiro, né? Então ele validou um pedaço e não validou o problema. Perfeito.
Então, eh, faça assim a POC, mas antes da POC, conheça o teu problema, conheça a os fluxos de negócio que a sua aplicação eh atende, como ela atende, e aí você vai conseguir eh ir para um caminho de de poque e até de implantação muito mais seguro, né? Eh, também olha pra questão da curva de aprendizado, né? Então, se você tem um time muito grande, pensa em como é que você vai escalar esse conhecimento, >> capacitar essa galera, né?
>> Capacitar essa galera. Exatamente. Eh, a gente até teve aqui uma pergunta muito boa, né, do do de um CEO, eh, governar esses dados é importante. Então, utilize práticas automatizadas para governar esses dados, porque o dado vai est na mão do desenvolvedor e aí ele vai poder, né, usar o melhor disso. E aí você precisa saber, né, quais dados você tá produzindo. O ponto é, eu quero saber todos esses dados que ele tá produzindo para eu poder usar em outros lugares, né? O, o básico da governança é o que que esse grupo, o que que essa aplicação, que esse contexto consome o que ele produz.
>> Exato.
>> É isso que é o conceito de cadeia de valor, né?
>> Perfeito.
>> O que que esse cara precisa de informação para trabalhar, para executar e o que que ele produz para pra companhia depois, né?
>> É. E aí, eh, também, né, pensando do ponto de vista de tecnologia, infraestrutura, eh escolher uma ferramenta que tenha um licenciamento adequado para sua utilização, né? Então, a gente trouxe aqui um um caso de de insucesso justamente porque a utilização ela usava uma um licenciamento da ferramenta que cobrava por consultas e isso não tava legal, né?
Então, poxa, nesse caso aqui você poderia, sei lá, usar uma ferramenta que te que não te cobrasse dessa forma. O caso do Sila, por exemplo, né? Ele ele é muito bom para isso. Ele você vai lá e e aí pegando esse gancho, né? Uma equipe especializada para te apoiar. Então, poxa, escolha uma ferramenta que você vai ter um suporte legal igual do time do Sila lá.
>> E para fechar, se alguém precisar de suporte nessa jornada, Rod, pode procurar quem, cara?
>> A Vems, com certeza.
Contato @vemers.Ou ou valdir.
Eh, ou entrar no nosso site e mandar uma mensagenzinha no no nosso formulário lá.
Com certeza a gente vai ouvir vocês. E a VMBERS, ela ela ajuda bastante também, sabe? A gente a gente trabalha com abundância. Eh, caso você tenha um desafio e você queira bater um papo sobre desafio, chama a gente, a gente marca uma reuniãozinha, conversa. Eh, às vezes, às vezes uma palavra, né? Às vezes uma uma perspectiva diferente diferente já dá pro pro nosso cliente aí. Exatamente. E aí no futuro, quando ele precisar de fato de um apoio mais forte, ele vai lá e e chama a gente a gente apô oferecendo aqui uma consultoria grátis. Tá com dúvida? Chama o cara para tomar um café que com certeza você vai ter um um norte aqui de para onde seguir.
>> O pessoal brinca bastante, né? É falemi Bears. Aí eu falo Vem Beers depois das 18, né? Então se o cara me chamar antes das 18 ele paga o café. Depois das 18 a gente toma a cerveja, cara.
>> Ex. Exatamente. Aqui ó, uma marca do PPT. Então >> é isso aí. Odir, obrigado, meu caro.
>> Mais uma vez a gente conseguiu cobrir cobrir bem, né? Uma porque tem uma mística um pouco sobre é uma dialética, né? Ou é um é outro. E não é isso, cara. É ambos, né? É ambos complete.
>> Exato. É, a gente a gente precisa convergir aqui. Eu acho que a gente trouxe muito isso de forma eh antagônica, né? Os nossos copos. Nós trouxemos isso de forma sóbria no episódio, né? A gente, a gente conseguiu trazer casos reais, trazer abstrações.
Nós tivemos até um quadro novo aqui que é você pergunta.
>> Você pergunta. Exatamente. Abraço, Molina.
>> Eh, então acho que a gente a gente trouxe sim e evidentemente, né, Wel, o os ouvintes eles podem eh colocar a mensagenzinha aqui, né, e a gente vai respondendo.
>> Coloca aqui, a gente vai tirando as dúvidas de vocês.
>> Exato.
>> É isso aí, cara. Obrigado pelo papo.
Muito bom. Obrigado, Bel.
>> Show de bola.
>> Tamo junto.
>> Você que acompanhou a gente até agora, muito obrigado pela audiência de vocês.
Se você curtiu o papo, se você achou que foi interessante e você acha que a gente contribui alguma coisa na sua vida profissional, alguma coisinha aqui, ó, que você ouviu assim, falou: "Cara, realmente isso daqui é interessante, você pode ser apoiador do PPT no Cupila, você vai lá no YouTube, do lado onde você iria se inscrever, tá lá, seja membro". você vai contribuir com um pequeno valor aqui que o PPT no compila todo mês como apoiador do PPT para ajudar a pagar a cerveja do Valdista também o tamanho desse cara. A gente tem que dar muita cerveja para ele vir aqui dar aula pra gente. Então ajude a gente se você não pode ajudar dessa forma. A gente já fica muito feliz se você compartilhar esse episódio nas redes sociais. Se você mandar pro DBA, manda pro DBA. Você mandar para poder da sua empresa, manda no Teams, manda no WhatsApp, manda no compartilha, faça a nossa comunidade crescer, que já ajuda demais, porque a gente tá aqui fazendo esse trabalho gratuito e ajudando os profissionais de TI. Valdirzão, obrigado de novo, cara.
>> Obrigado pelo convite. Estamos junto, >> galera. Obrigado pela audiência de vocês. Até a próxima. Valeu,
[Música] [Música]
Episódios Relacionados
1h 23minQuarkus: Java além da JVM
Luiz Pais, Valdir Scarin
19 de fev. de 2025
1h 26minEstratégias na Adoção de Plataformas de Desenvolvimento
Elcio Abrahão, Luis Rogerio de Souza
8 de mai. de 2024
1h 26minApache Kafka: Transformando Ecossistemas de Dados e Desenvolvimento de Software
Pedro Busko, Romulo Barbosa
13 de mar. de 2024
1h 21minSpring Boot Parte 3 - Avançado: Threads, Promisses e Starters
Marcello Ribeiro, Valdir Scarin
18 de out. de 2023
