<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Thiago Machado</title>
    <description>The latest articles on DEV Community by Thiago Machado (@dublado).</description>
    <link>https://dev.to/dublado</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F73410%2F637e3d11-4c93-4a38-91b8-6723f2070ce6.jpeg</url>
      <title>DEV Community: Thiago Machado</title>
      <link>https://dev.to/dublado</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dublado"/>
    <language>en</language>
    <item>
      <title>Como Criei Meu Próprio Sistema de Transcrição de Áudio</title>
      <dc:creator>Thiago Machado</dc:creator>
      <pubDate>Mon, 04 Aug 2025 03:02:16 +0000</pubDate>
      <link>https://dev.to/dublado/como-criei-meu-proprio-sistema-de-transcricao-de-audio-4o17</link>
      <guid>https://dev.to/dublado/como-criei-meu-proprio-sistema-de-transcricao-de-audio-4o17</guid>
      <description>&lt;h3&gt;
  
  
  Motivação
&lt;/h3&gt;

&lt;p&gt;Se você, como eu, já recebeu áudios intermináveis no Telegram, sabe o quanto pode ser cansativo ouvir tudo — especialmente quando a função de transcrição oficial é paga e exige assinatura anual. Decidi que não queria depender de serviços pagos para algo tão simples. E mais: queria integrar a solução ao meu bot multi-agent do Telegram, tornando a experiência ainda mais prática e automatizada.&lt;/p&gt;

&lt;h3&gt;
  
  
  O Problema
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Áudios do Telegram são cada vez mais comuns, mas a transcrição automática é um recurso restrito a assinantes.&lt;/li&gt;
&lt;li&gt;Ouvir áudios consome tempo e energia, principalmente em grupos ou canais profissionais.&lt;/li&gt;
&lt;li&gt;Soluções existentes são fechadas, pagas ou pouco flexíveis para integração com bots customizados.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  A Solução: Um Sistema de Transcrição Agnóstico e Extensível
&lt;/h3&gt;

&lt;p&gt;Desenvolvi um sistema open source, com arquitetura hexagonal e Domain-Driven Design (DDD), capaz de integrar múltiplos provedores de IA (OpenAI, Gemini, etc.) sem acoplamento direto. O sistema é modular, testável e pronto para ser usado em qualquer projeto Python — inclusive bots do Telegram!&lt;/p&gt;

&lt;h4&gt;
  
  
  Principais Características
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Agnóstico a provedores de IA&lt;/strong&gt;: Você pode usar OpenAI, Gemini, ou adicionar qualquer outro backend facilmente.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Extensível&lt;/strong&gt;: Basta implementar a interface &lt;code&gt;Transcriber&lt;/code&gt; para adicionar novos provedores.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fallback automático&lt;/strong&gt;: Se um provedor falhar, o sistema tenta o próximo da lista.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Configuração flexível&lt;/strong&gt;: Permite definir idioma, timeout, número de tentativas e opções específicas por provedor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testes automatizados&lt;/strong&gt;: Cobertura completa para garantir robustez.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pronto para bots&lt;/strong&gt;: Basta importar o pacote e integrar ao seu bot multi-agent.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Como Funciona
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Recebe o áudio&lt;/strong&gt; do Telegram (ou de qualquer fonte).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cria uma tarefa de transcrição&lt;/strong&gt; (&lt;code&gt;TranscriptionJob&lt;/code&gt;) com o arquivo recebido.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Define um plano de transcrição&lt;/strong&gt; (&lt;code&gt;TranscriptionPlan&lt;/code&gt;) com provedores e políticas de fallback.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Executa o caso de uso&lt;/strong&gt; (&lt;code&gt;ExecuteTranscriptionPlan&lt;/code&gt;), que orquestra a transcrição e retorna o texto.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Entrega o resultado&lt;/strong&gt; para o usuário, sem precisar ouvir o áudio!&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  O Que Aprendi
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arquitetura hexagonal&lt;/strong&gt; realmente facilita a manutenção e extensão do sistema.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Domain-Driven Design&lt;/strong&gt; ajuda a separar regras de negócio de detalhes técnicos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fallback inteligente&lt;/strong&gt; é essencial para garantir robustez em sistemas que dependem de APIs externas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open source é liberdade&lt;/strong&gt;: agora qualquer pessoa pode usar, adaptar e contribuir.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bots multi-agent podem ser muito mais úteis&lt;/strong&gt; quando integrados a sistemas abertos e flexíveis.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Resultado Final
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Nunca mais precisei ouvir áudios do Telegram — tudo é transcrito automaticamente!&lt;/li&gt;
&lt;li&gt;Não pago assinatura anual para um recurso simples.&lt;/li&gt;
&lt;li&gt;O sistema está disponível para qualquer pessoa usar, adaptar ou integrar em seus próprios projetos.&lt;/li&gt;
&lt;li&gt;Aprendi muito sobre arquitetura, testes e integração de IA.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Como Usar
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Clone o repositório: &lt;code&gt;git clone https://github.com/dublado/audio-transcriber.git&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Instale as dependências: &lt;code&gt;pdm install -G dev&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Execute o exemplo: &lt;code&gt;python examples/simple_usage.py&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Integre ao seu bot multi-agent do Telegram!&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Próximo Desafio: Otimização de Custo e Velocidade
&lt;/h3&gt;

&lt;p&gt;O próximo passo para evoluir o sistema será adicionar um filtro de otimização, acelerando o áudio antes de enviar para transcrição. A ideia é inspirada no artigo &lt;a href="https://george.mand.is/2025/06/openai-charges-by-the-minute-so-make-the-minutes-shorter/" rel="noopener noreferrer"&gt;OpenAI Charges by the Minute, So Make the Minutes Shorter&lt;/a&gt;, onde acelerar o áudio pode reduzir o tempo (e custo) de processamento, sem perder a inteligibilidade para os modelos de IA.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Por que acelerar?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provedores como OpenAI cobram por minuto de áudio processado.&lt;/li&gt;
&lt;li&gt;Áudios acelerados podem ser transcritos mais rápido e com menor custo.&lt;/li&gt;
&lt;li&gt;O filtro pode ser ajustado para manter a clareza da fala, mesmo em velocidades maiores.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Desafio extra:&lt;/strong&gt; Será que isso funcionaria com vídeos? 😄&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Essa otimização pode ser integrada como uma etapa opcional no pipeline, tornando o sistema ainda mais eficiente e econômico para quem recebe muitos áudios (ou vídeos) diariamente.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Se gostou do projeto, contribua ou compartilhe! Nunca mais ouça áudios — apenas leia!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>telegram</category>
      <category>python</category>
      <category>ia</category>
      <category>bots</category>
    </item>
    <item>
      <title>Solução para Problema de Glitch Gráfico Nvidia GPU</title>
      <dc:creator>Thiago Machado</dc:creator>
      <pubDate>Sat, 29 Mar 2025 22:01:30 +0000</pubDate>
      <link>https://dev.to/dublado/solucao-para-problema-de-glitch-grafico-nvidia-gpu-7kk</link>
      <guid>https://dev.to/dublado/solucao-para-problema-de-glitch-grafico-nvidia-gpu-7kk</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F308gk9x4ntgnv3hqv6u6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F308gk9x4ntgnv3hqv6u6.png" alt="glitch" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Recentemente, me deparei com um problema gráfico no Visual Studio Code(e variantes) que afetava a interface do programa. A distorção acontecia de forma aleatória, e a cada vez que eu alternava entre janelas, digitava, ou até mesmo passava o mouse sobre alguns campos. Após algumas tentativas de resolver, finalmente encontrei uma solução que pode ser útil para quem passar por um problema semelhante.&lt;/p&gt;

&lt;h4&gt;
  
  
  Descrição do Problema
&lt;/h4&gt;

&lt;p&gt;O erro gráfico apareceu da seguinte maneira:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A distorção ocorria sem ação explícita minha, aparecendo quando eu mudava de tela, digitava, ou até mesmo apenas passava o mouse sobre a interface.&lt;/li&gt;
&lt;li&gt;Em alguns casos, a distorção não afetava os campos de texto, mas aparecia ao redor desses campos.&lt;/li&gt;
&lt;li&gt;O problema persistia, mesmo depois de tentar reinstalar o Visual Studio Code e remover as extensões.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Tentativas de Solução
&lt;/h4&gt;

&lt;p&gt;Antes de encontrar a solução, tentei algumas abordagens:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Reinstalar o Visual Studio Code&lt;/strong&gt;: A reinstalação do programa não teve efeito sobre o problema.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Desabilitar Extensões&lt;/strong&gt;: Tentei remover todas as extensões, mas isso não fez diferença.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Configuração de Argumentos de Execução&lt;/strong&gt;: Segui algumas sugestões e tentei adicionar o argumento &lt;code&gt;"disable-hardware-acceleration": true&lt;/code&gt; nas configurações do VS Code, mas isso também não resolveu o problema.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  A Solução Encontrada
&lt;/h4&gt;

&lt;p&gt;Foi ao investigar mais a fundo as configurações gráficas do sistema que encontrei a verdadeira causa do problema. Percebi que o erro estava relacionado ao &lt;strong&gt;"Image Sharpening"&lt;/strong&gt; no painel de controle da Nvidia. Aqui estão os passos que segui para corrigir:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Abrir o Painel de Controle da Nvidia&lt;/strong&gt;: Deve estar instalado no seu SO.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ajustar Configurações 3D&lt;/strong&gt;: Naveguei até as configurações 3D.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Desabilitar o Aprimoramento de Imagem&lt;/strong&gt;: Procure "Image Sharpening" ou o relativo em português, desativei a opção.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  IDE - plus
&lt;/h4&gt;

&lt;p&gt;Após desabilitar a opção no painel de controle da Nvidia, o problema foi resolvido. Essa solução pode ser útil para quem estiver enfrentando erros gráficos semelhantes no Visual Studio Code. Caso você também enfrente esse erro, recomendo tentar essa abordagem ou, se necessário, adicionar o argumento &lt;code&gt;"disable-hardware-acceleration": true&lt;/code&gt; para forçar a utilização de renderização via software, direto na configuraçao de argumentos.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;(Ctrl+Shift+P).&lt;br&gt;
Pesquise por Configure Runtime Arguments command.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Com isso, reinicie a IDE e ficou tudo normal novamente&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Da mudança do Redis surge o Valkey defendendo o Open Source</title>
      <dc:creator>Thiago Machado</dc:creator>
      <pubDate>Sat, 13 Apr 2024 23:53:43 +0000</pubDate>
      <link>https://dev.to/dublado/da-mudanca-do-redis-surge-o-valkey-defendendo-o-open-source-2e86</link>
      <guid>https://dev.to/dublado/da-mudanca-do-redis-surge-o-valkey-defendendo-o-open-source-2e86</guid>
      <description>&lt;p&gt;Recentemente, o &lt;strong&gt;Redis&lt;/strong&gt;, um dos principais provedores de soluções de armazenamento de dados em memória e broker, anunciou uma mudança significativa em sua abordagem de licenciamento. Migrando da Licença BSD de 3 Cláusulas(3-Clause BSD) para um modelo de licença dupla, oferece agora a Redis Source Available License versão 2 (RSALv2) ou a Server-Side Public License versão 1 (SSPLv1). &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Essa decisão causa ressonância na comunidade de desenvolvedores, lembrando a transição do MySQL para o MariaDB após a aquisição do MySQL pela Oracle.&lt;/em&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Do que se tratam as licenças ?
&lt;/h2&gt;

&lt;p&gt;A RSALv2 restringe a oferta de serviços gerenciados sem compartilhar modificações, impedindo grandes corporações de usar o software sem contribuir de volta. A SSPLv1, mais restritiva, exige que serviços que usam o software e são oferecidos ao público compartilhem o código-fonte completo, promovendo um ecossistema de software livre mais robusto e transparente. Ambas visam proteger o investimento comunitário e incentivar a colaboração.&lt;/p&gt;

&lt;h2&gt;
  
  
  Aquisições Históricas: MySQL e MariaDB
&lt;/h2&gt;

&lt;p&gt;A história do MySQL e do MariaDB é um exemplo emblemático de como uma comunidade pode responder a mudanças corporativas que poderiam limitar a liberdade de um software open source. Quando a Oracle adquiriu o MySQL, havia uma preocupação legítima de que a nova gestão pudesse restringir o desenvolvimento open source da plataforma. Em resposta, a comunidade, liderada por um dos fundadores originais do MySQL, Michael "Monty" Widenius, iniciou o projeto MariaDB como um fork do MySQL.&lt;/p&gt;

&lt;h3&gt;
  
  
  Licenças do MySQL
&lt;/h3&gt;

&lt;p&gt;O MySQL usa uma abordagem de licenciamento dual, dependendo do uso que será feito do software:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GNU General Public License (GPL) versão 2:&lt;/strong&gt; Para a maioria dos usuários, o MySQL é disponibilizado sob a GPL versão 2. Esta é uma licença de software livre que permite que os usuários modifiquem e compartilhem o software, desde que suas modificações e software derivado também sejam distribuídos sob a GPL. O uso sob a GPL é adequado quando o MySQL é usado em aplicações também licenciadas de maneira compatível com a GPL, ou quando não se necessita de distribuição do software modificado.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Licença Comercial:&lt;/strong&gt; Para empresas que não querem liberar o código-fonte de suas aplicações que incorporam MySQL ou que usam MySQL de maneira que não seja compatível com a GPL, a Oracle (que adquiriu o MySQL em 2010) oferece uma licença comercial. Isso permite o uso do MySQL em aplicações proprietárias.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Licenças do MariaDB
&lt;/h4&gt;

&lt;p&gt;O MariaDB, por outro lado, é oferecido sob a GPL versão 2, mas com a garantia de que continuará sendo oferecido sob uma licença de software livre:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GNU General Public License (GPL) versão 2:&lt;/strong&gt; A fundação MariaDB garante que todas as versões do MariaDB permaneçam livres e abertas sob a GPL versão 2. Isso assegura que, ao contrário do MySQL, não haverá uma opção de licença comercial que restrinja como o código pode ser usado ou modificado. O MariaDB é, portanto, mais alinhado com os princípios tradicionais do software livre/open source em comparação ao MySQL pós-aquisição pela Oracle.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Essas diferenças refletem as distintas filosofias por trás de cada projeto: enquanto o MySQL pode ser usado em aplicações proprietárias sob sua licença comercial, o MariaDB se mantém estritamente dentro dos limites do open source sob a GPL.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Sistema&lt;/th&gt;
&lt;th&gt;Licença&lt;/th&gt;
&lt;th&gt;Categoria&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Redis&lt;/td&gt;
&lt;td&gt;RSALv2, SSPLv1&lt;/td&gt;
&lt;td&gt;Restricted&lt;/td&gt;
&lt;td&gt;Restrições para uso em serviços gerenciados e exigência de compartilhamento de código em certos contextos, menos permissiva para uso comercial.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MySQL&lt;/td&gt;
&lt;td&gt;GPL v2, Licença Comercial&lt;/td&gt;
&lt;td&gt;Restricted&lt;/td&gt;
&lt;td&gt;GPL v2 permite uso aberto mas com restrições de compatibilidade, Licença Comercial necessária para aplicações proprietárias.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Valkey&lt;/td&gt;
&lt;td&gt;BSD 3-Clause&lt;/td&gt;
&lt;td&gt;Open Source&lt;/td&gt;
&lt;td&gt;Muito permissiva, permite uso e modificação sem restrições significativas.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MariaDB&lt;/td&gt;
&lt;td&gt;GPL v2&lt;/td&gt;
&lt;td&gt;Open Source&lt;/td&gt;
&lt;td&gt;Permissiva dentro dos padrões open source, exige que alterações e distribuições permaneçam open source, mas sem restrições comerciais adicionais.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Melhorias e Continuidade Open Source
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;MariaDB&lt;/strong&gt; continuou a evoluir, ouvindo e se alinhando com as expectativas da comunidade open source:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Desenvolvimento Ativo:&lt;/strong&gt; MariaDB tem recebido atualizações regulares que introduzem novas funcionalidades, mantendo-se sempre à frente das necessidades dos desenvolvedores.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compatibilidade com MySQL:&lt;/strong&gt; Inicialmente, MariaDB foi feito para ser totalmente compatível com MySQL, garantindo que os usuários pudessem mudar de um sistema para outro sem problemas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inovações:&lt;/strong&gt; MariaDB introduziu várias inovações, incluindo motores de armazenamento avançados como Aria e TokuDB, que oferecem melhor desempenho e funcionalidades.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;MySQL&lt;/strong&gt;, sob gestão da Oracle, também continuou a desenvolver-se, garantindo que a tecnologia não fosse eclipsada pela sua contraparte open source:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Melhoria na Performance:&lt;/strong&gt; As versões recentes de MySQL oferecem melhorias significativas no desempenho e na segurança.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Funcionalidades Empresariais:&lt;/strong&gt; Incorporação de características orientadas para o empresariado, como a replicação baseada em grupo e melhorias na segurança.
Ambos os projetos têm prosperado, garantindo que a tecnologia MySQL original mantenha-se relevante e útil, tanto em formas open source como em variantes comerciais.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  A Reação da Comunidade
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Valkey&lt;/strong&gt; é visto como um Farol de Esperança em resposta à mudança do Redis, liderado pela Linux Foundation com apoio de grandes empresas como a Amazon e a Google. &lt;/p&gt;

&lt;p&gt;As mudanças nas licenças do Redis e o surgimento de projetos como Valkey são lembretes vitais de que o ecossistema de software é dinâmico e requer uma vigilância constante. Como engenheiro que acompanhou várias transições no mundo do open source, vejo esses movimentos como essenciais para o equilíbrio entre inovação aberta e o direito de os criadores e colaboradores serem justamente recompensados. Nesse caso, pelo histórico, todos ganham.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A história nos mostra que a comunidade de código aberto é resiliente e adaptativa. Projetos como o Valkey não são apenas respostas a mudanças imediatas, mas também um investimento no futuro da tecnologia open source, garantindo que ela permaneça sustentável, inclusiva e inovadora. Como a evolução do MySQL para o MariaDB, ou a aquisição positiva da Java pela Sun Microsystems, a trajetória do Redis pode muito bem ser um catalisador para novas ideias e melhores práticas em open source.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Alternativas
&lt;/h3&gt;

&lt;p&gt;Apache Cassandra [&lt;a href="https://cassandra.apache.org"&gt;https://cassandra.apache.org&lt;/a&gt;]&lt;br&gt;
Amazon DynamoDB [&lt;a href="https://aws.amazon.com/pt/dynamodb/"&gt;https://aws.amazon.com/pt/dynamodb/&lt;/a&gt;]&lt;br&gt;
Apache Ignite [&lt;a href="https://ignite.apache.org/"&gt;https://ignite.apache.org/&lt;/a&gt;]&lt;br&gt;
Azure Cosmo DB[&lt;a href="https://azure.microsoft.com"&gt;https://azure.microsoft.com&lt;/a&gt;]&lt;br&gt;
Dragonfly [&lt;a href="https://www.dragonflydb.io/redis-alternative"&gt;https://www.dragonflydb.io/redis-alternative&lt;/a&gt;]&lt;br&gt;
KeyDB [&lt;a href="https://docs.keydb.dev/"&gt;https://docs.keydb.dev/&lt;/a&gt;]&lt;br&gt;
Memcached [&lt;a href="https://memcached.org/"&gt;https://memcached.org/&lt;/a&gt;]&lt;br&gt;
Valkey [&lt;a href="https://valkey.io"&gt;https://valkey.io&lt;/a&gt;]&lt;/p&gt;

&lt;h3&gt;
  
  
  Referências
&lt;/h3&gt;

&lt;p&gt;Valkey - Linux Foundation Launches Open Source Community [&lt;a href="https://www.linuxfoundation.org/press/linux-foundation-launches-open-source-valkey-community"&gt;https://www.linuxfoundation.org/press/linux-foundation-launches-open-source-valkey-community&lt;/a&gt;]&lt;br&gt;
Valkey - Github [&lt;a href="https://github.com/valkey-io/valkey"&gt;https://github.com/valkey-io/valkey&lt;/a&gt;]&lt;br&gt;
Anúncio oficial do Redis [&lt;a href="https://redis.io/blog/what-redis-license-change-means-for-our-managed-service-providers/"&gt;https://redis.io/blog/what-redis-license-change-means-for-our-managed-service-providers/&lt;/a&gt;]&lt;br&gt;
Docker hub(UNSTABLE) [&lt;a href="https://hub.docker.com/r/valkey/valkey"&gt;https://hub.docker.com/r/valkey/valkey&lt;/a&gt;]&lt;br&gt;
Licença RSALv2 [&lt;a href="https://redis.io/legal/rsalv2-agreement/"&gt;https://redis.io/legal/rsalv2-agreement/&lt;/a&gt;]&lt;br&gt;
Licença SSPLv1 [&lt;a href="https://redis.io/legal/server-side-public-license-sspl/"&gt;https://redis.io/legal/server-side-public-license-sspl/&lt;/a&gt;]&lt;br&gt;
&lt;em&gt;Why AWS, Google and Oracle are backing the Valkey Redis fork&lt;/em&gt; [&lt;a href="https://techcrunch.com/2024/03/31/why-aws-google-and-oracle-are-backing-the-valkey-redis-fork/"&gt;https://techcrunch.com/2024/03/31/why-aws-google-and-oracle-are-backing-the-valkey-redis-fork/&lt;/a&gt;]&lt;br&gt;
&lt;em&gt;Redis is no longer open source as of yesterday&lt;/em&gt; [&lt;a href="https://www.reddit.com/r/selfhosted/comments/1bkhky1/fyi_redis_is_no_longer_open_source_as_of_yesterday/"&gt;https://www.reddit.com/r/selfhosted/comments/1bkhky1/fyi_redis_is_no_longer_open_source_as_of_yesterday/&lt;/a&gt;]&lt;br&gt;
&lt;em&gt;MySQL-MariaDB history talk&lt;/em&gt; [&lt;a href="https://mariadb.org/wp-content/uploads/2019/11/MySQL-MariaDB-story.pdf"&gt;https://mariadb.org/wp-content/uploads/2019/11/MySQL-MariaDB-story.pdf&lt;/a&gt;]&lt;br&gt;
Acquisition of Sun Microsystems by Oracle [&lt;a href="https://en.wikipedia.org/wiki/Acquisition_of_Sun_Microsystems_by_Oracle_Corporation"&gt;https://en.wikipedia.org/wiki/Acquisition_of_Sun_Microsystems_by_Oracle_Corporation&lt;/a&gt;]&lt;/p&gt;

</description>
      <category>redis</category>
      <category>valkey</category>
      <category>license</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Monolito, Microserviços, não necessariamente uma jornada evolutiva</title>
      <dc:creator>Thiago Machado</dc:creator>
      <pubDate>Fri, 15 Mar 2024 11:59:39 +0000</pubDate>
      <link>https://dev.to/dublado/monolito-microservicos-nao-necessariamente-uma-jornada-evolutiva-32oo</link>
      <guid>https://dev.to/dublado/monolito-microservicos-nao-necessariamente-uma-jornada-evolutiva-32oo</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Conversando em um coletivo de amigos, emergiu uma perspectiva pragmática que comenta essa jornada de desenvolvimento de software.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;No desenvolvimento de software, profissionais debatem se iniciar com um monolito ou microsserviços, impactando complexidade, custos e agilidade. Uma visão pragmática recomenda uma jornada de desenvolvimento evolutiva.&lt;/p&gt;

&lt;h2&gt;
  
  
  O Ponto de Partida: Monolito
&lt;/h2&gt;

&lt;p&gt;O consenso geral favorece começar o desenvolvimento com uma arquitetura monolítica, devido à sua simplicidade, custo inicial mais baixo e facilidade de manutenção. Um monolito integra todos os componentes do software, facilitando testes e desenvolvimento, o que é ideal para startups e projetos nas fases iniciais.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Transição: De Monolito para Microsserviços
&lt;/h2&gt;

&lt;p&gt;Conforme a aplicação expande em usuários, funcionalidades ou equipe, as restrições do monolito surgem, sugerindo a mudança para microsserviços, que promovem escalabilidade e desenvolvimento modular independente, facilitando a gestão de grandes equipes e necessidades de escalabilidade. &lt;/p&gt;

&lt;p&gt;Observamos alguns pontos de &lt;code&gt;restrição&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Escalabilidade Limitada&lt;/li&gt;
&lt;li&gt;Acoplamento Forte&lt;/li&gt;
&lt;li&gt;Tempo de Implantação Prolongado&lt;/li&gt;
&lt;li&gt;Dificuldade na implementação de novas tecnologias&lt;/li&gt;
&lt;li&gt;Comlpexidade do código&lt;/li&gt;
&lt;li&gt;Limitação na Disponibilidade&lt;/li&gt;
&lt;li&gt;Desafios na escalabilidade do time&lt;/li&gt;
&lt;li&gt;Testes complicados&lt;/li&gt;
&lt;li&gt;Problemas de desempenho&lt;/li&gt;
&lt;li&gt;Gerenciamento de dependencias&lt;/li&gt;
&lt;li&gt;Atualizações de segurança podem ser uma dor de cabeça&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A Decisão por Microsserviços: Quando e Por quê?
&lt;/h2&gt;

&lt;p&gt;A transição para microsserviços deve ser motivada por necessidades específicas, como escalabilidade e trabalho de múltiplas equipes em diferentes seções do projeto, que um monolito não atende bem. É crucial considerar os custos extras e a complexidade adicional em infraestrutura e manutenção.&lt;/p&gt;

&lt;h2&gt;
  
  
  Práticas para uma Transição Suave
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Uso de Containers:&lt;/em&gt; Adote Docker e Kubernetes para desenvolver, testar e implantar partes da aplicação de forma independente, alinhando a operação do monolito à dos microsserviços.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;APIs Restful:&lt;/em&gt; Utilize APIs Restful para separação lógica e comunicação entre partes do sistema, facilitando a adaptação para serviços distintos.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Separação de Dados:&lt;/em&gt; Organize o banco de dados por serviço para minimizar o acoplamento e facilitar a migração para microsserviços.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Design Orientado ao Domínio:&lt;/em&gt; Aplique princípios de DDD para organizar o código modularmente e definir limites para futuros serviços.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Comunicação Baseada em Eventos:&lt;/em&gt; Integre filas e mensageria para uma comunicação assíncrona e desacoplada, preparando para a arquitetura de microsserviços e facilitando a transição com um acoplamento frouxo.&lt;/p&gt;

&lt;h2&gt;
  
  
  O Veredicto: Uma Abordagem Evolutiva
&lt;/h2&gt;

&lt;p&gt;A abordagem evolutiva é ideal na arquitetura de software. Começar com um monolito ajuda startups e projetos iniciais a serem ágeis e a minimizar custos. Com o crescimento, pode-se considerar a mudança para microsserviços conforme as necessidades específicas, mas se atenha à necessidade do resultando, não à satisfações pessoais ou do time. Muito cuidado com o Hype, um bom meio de provar os Hypes e satisfazer a necessidade do time é aplicar pocs baseados nos interesses pessoais do time, é um bom meio de reciclar energia e motivar.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Para desenvolvedores experientes, preparar o terreno para essa possível transição, mesmo enquanto trabalham em um monolito, é uma estratégia astuta. Isso não apenas facilita uma futura migração para microsserviços, como também instila boas práticas de desenvolvimento desde o início.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
    </item>
  </channel>
</rss>
