<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Artigos (português)</title><description>Artigos de Bruno Souza, em português.</description><link>https://brunosouzas.com/pt/</link><language>pt-BR</language><atom:link href="https://brunosouzas.com/pt/rss.xml" rel="self" type="application/rss+xml"/><item><title>Padrões de integração no Mule: você já usa, só não sabe o nome</title><link>https://brunosouzas.com/pt/blog/integration-patterns-in-mulesoft/</link><guid isPermaLink="true">https://brunosouzas.com/pt/blog/integration-patterns-in-mulesoft/</guid><description>Scatter-Gather, Choice, For Each e a dead letter queue do Anypoint MQ vêm do livro Enterprise Integration Patterns. Saber o nome do padrão mostra o problema que o componente resolve, o que ele cobra e quando ele sobra.</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate><media:content url="https://brunosouzas.com/_astro/integration-patterns-card.Cldx_eHl.svg" medium="image" type="image/svg+xml"/></item><item><title>Escrever no Obsidian e publicar no próprio site</title><link>https://brunosouzas.com/pt/blog/write-in-obsidian-publish-on-your-site/</link><guid isPermaLink="true">https://brunosouzas.com/pt/blog/write-in-obsidian-publish-on-your-site/</guid><description>Uma pasta do vault vira o blog. O nome da nota vira o endereço, o topo da nota vira a página, e o site recusa o que estiver errado. De graça, com um template pronto do Astro.</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate><media:content url="https://brunosouzas.com/_astro/write-in-obsidian-publish-on-your-site-card.BabIZBQA.svg" medium="image" type="image/svg+xml"/></item><item><title>Do pedido de uma linha à spec viva: spec-driven development na prática</title><link>https://brunosouzas.com/pt/blog/spec-driven-development-in-practice/</link><guid isPermaLink="true">https://brunosouzas.com/pt/blog/spec-driven-development-in-practice/</guid><description>Um pedido curto, uma API Mule 4 e o OpenSpec mostram como a spec revisada antes do código revela o que o pedido esqueceu e evita uma quebra de contrato.</description><pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate><media:content url="https://brunosouzas.com/_astro/spec-driven-development-card.Ck6wHs6s.svg" medium="image" type="image/svg+xml"/></item><item><title>O que permanece com o desenvolvedor de software quando a AI escreve código?</title><link>https://brunosouzas.com/pt/blog/ai-writes-code/</link><guid isPermaLink="true">https://brunosouzas.com/pt/blog/ai-writes-code/</guid><description>O que as pesquisas dizem sobre AI e desenvolvimento, e por que eu acho que fundamentos e revisão continuam sendo o trabalho.</description><pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate><media:content url="https://brunosouzas.com/_astro/ai-writes-code-card.CIUWYI0q.svg" medium="image" type="image/svg+xml"/></item><item><title>Quando a AI escreve o código, o trabalho do engenheiro muda de lugar</title><link>https://brunosouzas.com/pt/blog/where-the-work-moves/</link><guid isPermaLink="true">https://brunosouzas.com/pt/blog/where-the-work-moves/</guid><description>Uma resposta 200 plausível, um cliente inativo e a regra que faltava no requisito.</description><pubDate>Sun, 27 Sep 2026 00:00:00 GMT</pubDate><media:content url="https://brunosouzas.com/_astro/where-the-work-moves-card.DMheR9Ln.svg" medium="image" type="image/svg+xml"/></item><item><title>Circuit breaker em MuleSoft: quando o retry piora as coisas</title><link>https://brunosouzas.com/pt/blog/circuit-breaker-in-mulesoft/</link><guid isPermaLink="true">https://brunosouzas.com/pt/blog/circuit-breaker-in-mulesoft/</guid><description>Retry sozinho transforma a lentidão de um backend numa queda da integração. Um plugin público, medido e testado, mostra a diferença — e o que muda com réplicas no CloudHub 2.0.</description><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate><media:content url="https://brunosouzas.com/_astro/circuit-breaker-card.s1gNBXTa.svg" medium="image" type="image/svg+xml"/></item><item><title>Inversão de Dependência em MuleSoft: flows de negócio donos das suas abstrações</title><link>https://brunosouzas.com/pt/blog/dip-in-mulesoft/</link><guid isPermaLink="true">https://brunosouzas.com/pt/blog/dip-in-mulesoft/</guid><description>DIP não é externalizar configuração. É o flow de negócio definir o modelo de que precisa e os adaptadores se ajustarem a ele — no Mule 4, com implementações de ERP e em memória intercambiáveis.</description><pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate><media:content url="https://brunosouzas.com/_astro/dip-card.BwfQT55c.svg" medium="image" type="image/svg+xml"/></item><item><title>Segregação de Interfaces em MuleSoft: uma API para cada consumidor</title><link>https://brunosouzas.com/pt/blog/isp-in-mulesoft/</link><guid isPermaLink="true">https://brunosouzas.com/pt/blog/isp-in-mulesoft/</guid><description>Um endpoint de pedidos que devolve tudo para todos, dividido em interfaces por consumidor — e por que o argumento mais forte para o ISP em integração é a exposição de dados.</description><pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate><media:content url="https://brunosouzas.com/_astro/isp-card.DJ8uLjj2.svg" medium="image" type="image/svg+xml"/></item><item><title>Substituição de Liskov em MuleSoft: implementações que se substituem</title><link>https://brunosouzas.com/pt/blog/lsp-in-mulesoft/</link><guid isPermaLink="true">https://brunosouzas.com/pt/blog/lsp-in-mulesoft/</guid><description>O Mule não tem herança, mas o LSP aparece mesmo assim: dois adaptadores atrás de um contrato, e o novo mantém os nomes dos campos enquanto muda o significado deles.</description><pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate><media:content url="https://brunosouzas.com/_astro/lsp-card.Dp_josdG.svg" medium="image" type="image/svg+xml"/></item><item><title>Deploy no CloudHub 2.0 a partir do Azure Pipelines: build único, aprovação e verificação</title><link>https://brunosouzas.com/pt/blog/mulesoft-cloudhub-deploy-approvals/</link><guid isPermaLink="true">https://brunosouzas.com/pt/blog/mulesoft-cloudhub-deploy-approvals/</guid><description>Promova o mesmo artefato do Exchange por test, uat e prod no CloudHub 2.0, com aprovações nos environments do Azure DevOps e smoke test depois de cada deploy.</description><pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate><media:content url="https://brunosouzas.com/_astro/cloudhub-deploy-card.DG0EGsYg.svg" medium="image" type="image/svg+xml"/></item><item><title>GitFlow para MuleSoft: regras de branch que o pipeline entende</title><link>https://brunosouzas.com/pt/blog/mulesoft-gitflow/</link><guid isPermaLink="true">https://brunosouzas.com/pt/blog/mulesoft-gitflow/</guid><description>Por que o GitFlow ainda serve para releases agendados de MuleSoft, onde ele não serve, e como transformar nomes de branch em comportamento do pipeline — com um projeto de referência funcionando.</description><pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate><media:content url="https://brunosouzas.com/_astro/gitflow-card.DKRC41eo.svg" medium="image" type="image/svg+xml"/></item><item><title>Versionando aplicações Mule com o Maven release plugin no Azure Pipelines</title><link>https://brunosouzas.com/pt/blog/mulesoft-maven-release/</link><guid isPermaLink="true">https://brunosouzas.com/pt/blog/mulesoft-maven-release/</guid><description>release:prepare e release:perform passo a passo, rodando dentro do Azure Pipelines — detached HEAD, push com o token do pipeline, [skip ci] e proteção de branch.</description><pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate><media:content url="https://brunosouzas.com/_astro/maven-release-card.Cuw5eEvY.svg" medium="image" type="image/svg+xml"/></item><item><title>Templates do Azure Pipelines para MuleSoft: um fluxo de entrega, muitas aplicações</title><link>https://brunosouzas.com/pt/blog/mulesoft-pipeline-templates/</link><guid isPermaLink="true">https://brunosouzas.com/pt/blog/mulesoft-pipeline-templates/</guid><description>Como estruturar templates versionados do Azure Pipelines para aplicações Mule — stages, jobs e steps, segredos sem secure files, e por que o MUnit fica fora de um pipeline público.</description><pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate><media:content url="https://brunosouzas.com/_astro/pipeline-templates-card.Cmumzan2.svg" medium="image" type="image/svg+xml"/></item><item><title>Aberto/Fechado em MuleSoft: estender sem editar, e quanto isso custa</title><link>https://brunosouzas.com/pt/blog/ocp-in-mulesoft/</link><guid isPermaLink="true">https://brunosouzas.com/pt/blog/ocp-in-mulesoft/</guid><description>Um novo meio de pagamento numa app Mule 4 sem mexer no roteador — com roteamento dinâmico por configuração, evidência em MUnit e uma análise honesta dos custos.</description><pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate><media:content url="https://brunosouzas.com/_astro/ocp-card.CGyrPpfJ.svg" medium="image" type="image/svg+xml"/></item><item><title>SOLID em MuleSoft: o que vem do design orientado a objetos e o que não se encaixa</title><link>https://brunosouzas.com/pt/blog/solid-in-mulesoft/</link><guid isPermaLink="true">https://brunosouzas.com/pt/blog/solid-in-mulesoft/</guid><description>Os cinco princípios SOLID no Mule 4, com código e testes: onde cada um se aplica a integrações, onde precisa de tradução e onde deixa de ajudar.</description><pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate><media:content url="https://brunosouzas.com/_astro/solid-intro-card.BYSKpXVF.svg" medium="image" type="image/svg+xml"/></item><item><title>Responsabilidade Única em MuleSoft: um motivo de mudança por flow</title><link>https://brunosouzas.com/pt/blog/srp-in-mulesoft/</link><guid isPermaLink="true">https://brunosouzas.com/pt/blog/srp-in-mulesoft/</guid><description>SRP não é sobre flows pequenos. É sobre agrupar a lógica pelo motivo de mudança — com um flow de pedidos no Mule 4, antes e depois, e testes MUnit.</description><pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate><media:content url="https://brunosouzas.com/_astro/srp-card.D0SFfN0p.svg" medium="image" type="image/svg+xml"/></item></channel></rss>