<?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: Raffael Michels</title>
    <description>The latest articles on DEV Community by Raffael Michels (@raffael_michels).</description>
    <link>https://dev.to/raffael_michels</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%2F3887353%2Fe170b0f6-0a8b-4aae-bfef-3b870dfc88db.png</url>
      <title>DEV Community: Raffael Michels</title>
      <link>https://dev.to/raffael_michels</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/raffael_michels"/>
    <language>en</language>
    <item>
      <title>Arquitetura monolítica</title>
      <dc:creator>Raffael Michels</dc:creator>
      <pubDate>Sun, 19 Apr 2026 13:28:26 +0000</pubDate>
      <link>https://dev.to/raffael_michels/arquitetura-monolitica-4keg</link>
      <guid>https://dev.to/raffael_michels/arquitetura-monolitica-4keg</guid>
      <description>&lt;h2&gt;
  
  
  Resumo
&lt;/h2&gt;

&lt;p&gt;Este artigo apresenta uma análise técnica da arquitetura monolítica no desenvolvimento de software, abordando seus fundamentos, variações, vantagens e limitações. Discute-se o monolito tradicional, o monolito modular e o monolito distribuído, além de cenários reais de empresas como Shopify, Stack Overflow, Basecamp e Istio. Conclui-se que, apesar do apelo contemporâneo dos microsserviços, o monolito permanece uma escolha arquitetural legítima e, em muitos casos, preferível.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;Nos últimos dez anos, o discurso dominante na engenharia de software elegeu os microsserviços como sinônimo de modernidade, relegando a arquitetura monolítica ao papel de "legado" indesejável. Essa associação, contudo, é imprecisa e prejudicial à tomada de decisão técnica. Como observa Newman (2020), "o termo 'monolito' tornou-se um substituto para a palavra 'legado', e isso é inadequado, pois um monolito se refere, na verdade, à unidade de implantação".&lt;br&gt;
Este artigo propõe uma leitura técnica da arquitetura monolítica. A relevância da discussão é prática: a maioria das aplicações web em operação no mundo ainda é monolítica, e casos recentes como a consolidação do control plane do Istio em 2020(BOX, 2020) e a redução de 90% de custos do Prime Video ao migrar componentes serverless para um monolito em contêineres (KOLNY, 2023) mostram que o padrão segue estrategicamente vivo. Compreendê-lo em profundidade é, portanto, pré-requisito para qualquer decisão arquitetural consciente.&lt;/p&gt;

&lt;h2&gt;
  
  
  Definição e características
&lt;/h2&gt;

&lt;p&gt;Lewis e Fowler (2014) definem o monolito como "uma aplicação servidor única, um executável lógico único, em que qualquer alteração no sistema envolve construir e implantar uma nova versão da aplicação". A característica definidora, segundo Newman (2020), é a unidade única de implantação: todo o código precisa ser empacotado, testado e publicado em conjunto. Desse atributo derivam as demais propriedades do estilo: código-base único, comunicação in-process por chamadas de função, memória compartilhada, pipeline único de build e, tipicamente, um banco de dados unificado.&lt;br&gt;
Martin (2019, p. 162) lembra que essa configuração oferece um benefício técnico concreto: "as comunicações entre componentes em um monolito são muito rápidas e baratas", diferentemente de arquiteturas distribuídas, nas quais chamadas de rede introduzem latência, falhas parciais e complexidade de orquestração.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tipos de monolito
&lt;/h2&gt;

&lt;p&gt;Newman (2020) distingue três variações relevantes. O monolito de processo único (single-process monolith) é a forma clássica: todo o código roda em um único processo, geralmente contra um banco de dados compartilhado. O monolito modular é, nas palavras do autor, "um único processo composto por módulos separados, cada um podendo ser trabalhado de forma independente, mas combinados para o deploy". Já o monolito distribuído é considerado antipadrão, "um sistema composto por múltiplos serviços que, por alguma razão, precisam ser implantados juntos", acumulando desvantagens dos dois mundos.&lt;br&gt;
Richards e Ford (2020) complementam com o monolito em camadas (layered architecture), no qual o código é organizado horizontalmente em camadas de apresentação, negócio, persistência e dados, de modo que "mudanças feitas em uma camada geralmente não impactam componentes das outras camadas".&lt;/p&gt;

&lt;h2&gt;
  
  
  Vantagens
&lt;/h2&gt;

&lt;p&gt;A principal vantagem do monolito é a simplicidade operacional. Como descreve Westeinde (2019), engenheira do Shopify, "manter todo o código em um só lugar e implantar em um único destino traz muitas vantagens: um único repositório, um único pipeline de testes e deploy, e um único banco compartilhado". Também há a performance das chamadas locais, a facilidade de testes de ponta a ponta, o stack trace único para depuração e o custo reduzido de infraestrutura.&lt;br&gt;
Heinemeier Hansson (2016), criador do Ruby on Rails, sintetiza o argumento filosófico: "o problema de transformar prematuramente sua aplicação em uma série de serviços é violar a regra nº 1 da computação distribuída: não distribua sua computação".&lt;/p&gt;

&lt;h2&gt;
  
  
  Desvantagens
&lt;/h2&gt;

&lt;p&gt;A escalabilidade é limitada à replicação vertical ou à cópia integral de instâncias, impossibilitando escalar funcionalidades de forma independente. Sem disciplina arquitetural, o acoplamento entre módulos tende a crescer: o Shopify relatou que, antes da modularização, "a aplicação era extremamente frágil, e mudanças aparentemente inofensivas disparavam cascatas de falhas em testes não relacionados" (WESTEINDE, 2019). Há ainda a rigidez tecnológica (uma única stack para toda a aplicação), o risco associado a deploys amplos e a crescente lentidão de build em bases muito grandes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quando adotar o monolito
&lt;/h2&gt;

&lt;p&gt;Fowler (2015) propõe o princípio Monolith First: "quase todas as histórias de sucesso em microsserviços começaram com um monolito que ficou grande demais e foi particionado; quase todos os casos em que ouvi falar de sistemas construídos como microsserviços desde o início acabaram em sérios problemas". A justificativa é a dificuldade de estabelecer bons bounded contexts antes de se conhecer o domínio. Produtos em validação, MVPs, startups e equipes pequenas costumam obter melhor relação custo-benefício com monolitos.&lt;br&gt;
Os casos práticos corroboram esse raciocínio. O Shopify mantém um monolito Ruby on Rails com mais de 2,8 milhões de linhas e mais de mil desenvolvedores ativos (WESTEINDE, 2019). O Stack Overflow serve cerca de 209 milhões de requisições diárias com uma aplicação ASP.NET monolítica (CRAVER, 2016). O Segment, após migrar para 250 microsserviços, reverteu para uma arquitetura unificada e ampliou sua velocidade de entrega(NOONAN, 2018). Tais exemplos não invalidam os microsserviços, mas demonstram que o monolito, quando bem projetado, é uma arquitetura contemporânea e competitiva.&lt;/p&gt;

&lt;h2&gt;
  
  
  Considerações finais
&lt;/h2&gt;

&lt;p&gt;A arquitetura monolítica não é obsoleta, tampouco inferior por natureza. É um estilo arquitetural com trade-offs próprios que, em muitos contextos, oferece a melhor combinação de simplicidade, performance e custo. A tendência contemporânea do monolito modular, fundamentada em Domain-Driven Design e na delimitação explícita de fronteiras, aponta para um caminho equilibrado: manter os ganhos operacionais do monolito enquanto se preservam a coesão interna e a possibilidade de evolução futura para microsserviços, quando e se forem justificados. A lição central, sintetizada por Tilkov (2015), permanece oportuna: "se você não consegue construir um monolito bem estruturado, o que o faz pensar que conseguirá construir um bom conjunto de microsserviços?". &lt;/p&gt;

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

&lt;p&gt;BOX, C. Introducing istiod: simplifying the control plane. Istio Blog, 19 mar. 2020. Disponível em: &lt;a href="https://istio.io/latest/blog/2020/istiod/" rel="noopener noreferrer"&gt;https://istio.io/latest/blog/2020/istiod/&lt;/a&gt;. Acesso em: 18 abr. 2026.&lt;br&gt;
CRAVER, N. Stack Overflow: The Architecture – 2016 Edition. Nick Craver Blog, 17 fev. 2016. Disponível em: &lt;a href="https://nickcraver.com/blog/2016/02/17/stack-overflow-the-architecture-2016-edition/" rel="noopener noreferrer"&gt;https://nickcraver.com/blog/2016/02/17/stack-overflow-the-architecture-2016-edition/&lt;/a&gt;. Acesso em: 18 abr. 2026.&lt;br&gt;
FOWLER, M. MonolithFirst. martinfowler.com, 3 jun. 2015. Disponível em: &lt;a href="https://martinfowler.com/bliki/MonolithFirst.html" rel="noopener noreferrer"&gt;https://martinfowler.com/bliki/MonolithFirst.html&lt;/a&gt;. Acesso em: 18 abr. 2026.&lt;br&gt;
HEINEMEIER HANSSON, D. The Majestic Monolith. Signal v. Noise, 29 fev. 2016. Disponível em: &lt;a href="https://signalvnoise.com/svn3/the-majestic-monolith/" rel="noopener noreferrer"&gt;https://signalvnoise.com/svn3/the-majestic-monolith/&lt;/a&gt;. Acesso em: 18 abr. 2026.&lt;br&gt;
KOLNY, M. Scaling up the Prime Video audio/video monitoring service and reducing costs by 90%. Prime Video Tech Blog, maio 2023. Disponível em: &lt;a href="https://www.primevideotech.com/video-streaming/scaling-up-the-prime-video-audio-video-monitoring-service-and-reducing-costs-by-90" rel="noopener noreferrer"&gt;https://www.primevideotech.com/video-streaming/scaling-up-the-prime-video-audio-video-monitoring-service-and-reducing-costs-by-90&lt;/a&gt;. Acesso em: 18 abr. 2026.&lt;br&gt;
LEWIS, J.; FOWLER, M. Microservices: a definition of this new architectural term. martinfowler.com, 25 mar. 2014. Disponível em: &lt;a href="https://martinfowler.com/articles/microservices.html" rel="noopener noreferrer"&gt;https://martinfowler.com/articles/microservices.html&lt;/a&gt;. Acesso em: 18 abr. 2026.&lt;br&gt;
MARTIN, R. C. Arquitetura Limpa: o guia do artesão para estrutura e design de software. Rio de Janeiro: Alta Books, 2019.&lt;br&gt;
NEWMAN, S. Building Microservices: Designing Fine-Grained Systems. 2. ed. Sebastopol: O'Reilly Media, 2021.&lt;br&gt;
NEWMAN, S. Monolith to Microservices: Evolutionary Patterns to Transform Your Monolith. Sebastopol: O'Reilly Media, 2020.&lt;br&gt;
NOONAN, A. Goodbye Microservices: From 100s of problem children to 1 superstar. Segment Blog, 10 jul. 2018. Disponível em: &lt;a href="https://segment.com/blog/goodbye-microservices/" rel="noopener noreferrer"&gt;https://segment.com/blog/goodbye-microservices/&lt;/a&gt;. Acesso em: 18 abr. 2026.&lt;br&gt;
RICHARDS, M.; FORD, N. Fundamentos de Arquitetura de Software: uma abordagem de engenharia. Porto Alegre: Bookman, 2021.&lt;br&gt;
TILKOV, S. Don't Start with a Monolith. martinfowler.com, 9 jun. 2015. Disponível em: &lt;a href="https://martinfowler.com/articles/dont-start-monolith.html" rel="noopener noreferrer"&gt;https://martinfowler.com/articles/dont-start-monolith.html&lt;/a&gt;. Acesso em: 18 abr. 2026.&lt;br&gt;
WESTEINDE, K. Deconstructing the Monolith: Designing Software that Maximizes Developer Productivity. Shopify Engineering, 21 fev. 2019. Disponível em: &lt;a href="https://shopify.engineering/deconstructing-monolith-designing-software-maximizes-developer-productivity" rel="noopener noreferrer"&gt;https://shopify.engineering/deconstructing-monolith-designing-software-maximizes-developer-productivity&lt;/a&gt;. Acesso em: 18 abr. 2026.&lt;/p&gt;

</description>
      <category>softwaredevelopment</category>
      <category>monolito</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
