As Falácias da Computação Distribuída

Baseado no Capítulo 9 do livro “Fundamentos da Arquitetura de Software: Uma Abordagem de Engenharia” No contexto de sistemas distribuídos, a comunicação entre diferentes componentes acontece por meio de redes (LAN, WAN, internet, etc.). Ainda que aparentemente simples, esse modelo esconde uma complexidade significativa. Problemas como latência, segurança, disponibilidade e…

Subdomínios em DDD

Uma das bases do Domain-Driven Design (DDD) é entender e modelar o domínio de negócio de forma estruturada. Para lidar com a complexidade, é comum dividir o domínio em partes menores e mais gerenciáveis, conhecidas como subdomínios. Neste artigo, daremos uma prévia sobre os tipos de subdomínios, apresentando as categorias…

Sidecars e Malhas de Serviços: Unindo Funcionalidades Transversais sem Poluir Microserviços

Fechando nossa série sobre estratégias para recuperar coesão em um ecossistema de microserviços, falaremos agora de Sidecars e Service Meshes. Diferentemente das soluções anteriores, estas não envolvem copiar lógica ou criar um serviço único de negócios; elas oferecem uma infraestrutura transversal para padronizar segurança, monitoramento, roteamento e mais — sem inserir…

Serviço Compartilhado: Centralizando Funcionalidades em um Único Microserviço

Dando sequência à nossa série sobre estratégias para recuperar coesão em microserviços, falaremos agora do Serviço Compartilhado. Nesta abordagem, em vez de duplicar ou distribuir uma lógica comum em cada microserviço (replicação de código ou bibliotecas compartilhadas), opta-se por criar um microserviço que oferece funcionalidades para todos os outros. Assim,…

Biblioteca Compartilhada: Centralizando Lógicas sem Perder a Modularidade

Dando continuidade à série de artigos sobre estratégias para reunir coesão em um ecossistema de microserviços, desta vez focamos na Biblioteca Compartilhada. A ideia é agrupar lógicas comuns em uma “lib” (por exemplo, um pacote npm, jar, gem), para que cada microserviço possa adicioná-la como dependência. Isso difere da Replicação…

Reunindo Microserviços para Maior Coesão

Depois de adotar uma arquitetura de microserviços, é comum perceber que alguns aspectos precisam ser unificados ou “centralizados” de alguma forma, para garantir coerência, reuso e facilidade de manutenção. Neste primeiro artigo de uma nova série, analisaremos por que e como podemos retomar certa “coesão” no ecossistema de microserviços sem…