<?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: Bruno Tescke</title>
    <description>The latest articles on DEV Community by Bruno Tescke (@bruno_tescke).</description>
    <link>https://dev.to/bruno_tescke</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%2F3864652%2F7d6aa81c-737f-40c8-8d55-d98d6158d586.jpg</url>
      <title>DEV Community: Bruno Tescke</title>
      <link>https://dev.to/bruno_tescke</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bruno_tescke"/>
    <language>en</language>
    <item>
      <title>Arquitetura Monolítica no desenvolvimento moderno</title>
      <dc:creator>Bruno Tescke</dc:creator>
      <pubDate>Mon, 20 Apr 2026 17:17:22 +0000</pubDate>
      <link>https://dev.to/bruno_tescke/arquitetura-monolitica-no-desenvolvimento-moderno-42la</link>
      <guid>https://dev.to/bruno_tescke/arquitetura-monolitica-no-desenvolvimento-moderno-42la</guid>
      <description>&lt;p&gt;Este artigo estuda o uso da arquitetura monolítica no contexto do desenvolvimento de software moderno. Frequentemente comparada com microserviços, a arquitetura monolítica apresenta aspectos positivos e negativos quanto à sua confiabilidade e usabilidade. O texto aborda suas características, prós e contras, o papel das APIs REST na comunicação interna e externa, e os critérios para a escolha desse modelo arquitetural.&lt;/p&gt;

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

&lt;p&gt;A escolha da arquitetura no início de um projeto é uma das decisões mais críticas do desenvolvimento, com impacto direto na produtividade da equipe e na capacidade de escalar o sistema. Durante muito tempo, a migração para microserviços foi tratada pela indústria como um passo natural e quase obrigatório para qualquer aplicação com pretensão de crescimento. Essa visão começou a ser questionada por profissionais experientes da área, que passaram a apontar a complexidade desnecessária que os microserviços impõem — especialmente em estágios iniciais — e a defender a solidez da arquitetura monolítica quando bem aplicada.&lt;br&gt;
Este artigo defende que o monolito, quando estruturado com cuidado, continua sendo a escolha mais eficiente para a maioria dos sistemas. O argumento se apoia na teoria de Chris Richardson e Martin Fowler sobre padrões arquiteturais, na experiência prática da Shopify com o monolito modular, e na visão de David Heinemeier Hansson (DHH) sobre os custos reais de distribuir um sistema antes da hora.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fundamentação Teórica
&lt;/h2&gt;

&lt;h3&gt;
  
  
  O conceito da Arquitetura Monolítica
&lt;/h3&gt;

&lt;p&gt;Uma aplicação monolítica é construída como uma única unidade lógica: a lógica de negócio, o acesso a dados e a interface residem no mesmo processo. Segundo Richardson, esse modelo é simples de desenvolver, testar e colocar em produção, já que envolve apenas uma unidade de deploy — seja um arquivo JAR ou a estrutura de diretórios de um projeto Rails.&lt;br&gt;
O problema aparece quando o sistema cresce sem controle. A ausência de fronteiras claras vai tornando o código cada vez mais frágil e arriscado de modificar — situação conhecida como "Inferno Monolítico". É nesse ponto que entra o conceito de Monolito Modular, discutido por DHH no artigo "The Majestic Monolith" (HANSSON, 2016).&lt;/p&gt;

&lt;h3&gt;
  
  
  O monolito Majestoso e a Modularizção
&lt;/h3&gt;

&lt;p&gt;DHH cunhou o termo "Monolito Majestoso" para nomear sistemas integrados que resistem à abstração desnecessária. O argumento central é que distribuir um sistema traz problemas de rede e de consistência de dados que, para equipes pequenas ou médias, tendem a custar mais do que os benefícios que oferecem (HANSSON, 2016).&lt;br&gt;
O caso da Shopify é um bom exemplo disso na prática. Quando o monolito Ruby on Rails da empresa começou a mostrar seus limites, a equipe decidiu não fragmentar o sistema em serviços independentes. Em vez disso, apostaram na Componentização: reorganizar o código em torno de conceitos reais de negócio, como pagamentos e logística, forçando fronteiras por meio de APIs internas sem abrir mão do repositório e do banco de dados únicos. Para acompanhar esse processo, a Shopify criou internamente uma ferramenta chamada Wedge, que rastreava o grau de isolamento de cada componente e sinalizava violações de fronteira durante a integração contínua (WESTEINDE, 2019).&lt;/p&gt;

&lt;h3&gt;
  
  
  O papel da API REST na arquitetura
&lt;/h3&gt;

&lt;p&gt;Mesmo dentro de um monolito, o padrão REST é relevante. Num monolito modular, as APIs REST não servem só para o front-end — elas podem funcionar como contratos entre componentes internos, tornando as fronteiras de domínio explícitas e facilitando uma eventual extração de módulos no futuro. É o que Fowler chama de preparação para os MicroservicePrerequisites: uma API interna bem definida hoje é a saída mais organizada para microserviços amanhã, se esse dia chegar (FOWLER, 2015).&lt;/p&gt;

&lt;h2&gt;
  
  
  Comparações e Trade-offs
&lt;/h2&gt;

&lt;p&gt;A vantagem mais direta do monolito sobre microserviços é operacional: sem chamadas de rede entre serviços, não há latência adicional nem pontos extras de falha. Fowler defende que, na maioria dos casos, faz mais sentido começar com um monolito — refatorar código dentro de um sistema único é muito mais simples do que mover funcionalidades entre serviços já em produção. Microserviços demandam maturidade de infraestrutura e cultura de monitoramento que só se justificam quando a complexidade do negócio torna o monolito genuinamente insustentável (FOWLER, 2015).&lt;br&gt;
Fowler não está defendendo o monolito como solução permanente — está defendendo o momento certo de cada decisão. Praticamente todos os casos bem-sucedidos de microserviços começaram com um monolito que cresceu a ponto de precisar ser dividido. Os sistemas que nasceram como microserviços, por outro lado, costumam enfrentar dificuldades sérias. Dentro de um sistema único é muito mais fácil descobrir onde as fronteiras de domínio realmente ficam do que tentar adivinhar isso antes de ter qualquer experiência com o negócio (FOWLER, 2015).&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Tratar a arquitetura monolítica como um estágio ultrapassado ignora tanto a teoria quanto casos concretos da indústria. A Shopify optou por evoluir seu monolito em vez de abandoná-lo. DHH mantém o Basecamp como monolito há mais de vinte anos, atendendo milhões de usuários com uma equipe pequena. Fowler recomenda explicitamente o monolito como ponto de partida para qualquer novo projeto.&lt;br&gt;
A decisão arquitetural deveria partir do contexto real: tamanho da equipe, maturidade do domínio de negócio e sinais concretos de que a estrutura atual está travando o desenvolvimento. Para a maior parte dos sistemas, o monolito — especialmente quando modularizado com disciplina — continua sendo a escolha mais sustentável.&lt;/p&gt;

&lt;p&gt;Este artigo foi feito com o auxílio de Tiago Fritzen Palácio para fins didáticos.&lt;/p&gt;

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

&lt;p&gt;FOWLER, Martin. 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: abr. 2026.&lt;br&gt;
HANSSON, David Heinemeier. 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: abr. 2026.&lt;br&gt;
WESTEINDE, Kirsten. Deconstructing the Monolith: Designing Software that Maximizes Developer Productivity. Shopify Engineering Blog, 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: abr. 2026.&lt;br&gt;
HARRIS, Chandler. Microsserviços versus arquitetura monolítica. Atlassian. Disponível em: &lt;a href="https://www.atlassian.com/br/microservices/microservices-architecture/microservices-vs-monolith" rel="noopener noreferrer"&gt;https://www.atlassian.com/br/microservices/microservices-architecture/microservices-vs-monolith&lt;/a&gt;. Acesso em: abr. 2026.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>backend</category>
      <category>microservices</category>
      <category>systemdesign</category>
    </item>
  </channel>
</rss>
