DEV Community

Cover image for O que é Arquitetura Composable? Guia Completo MACH e API-first
Lucas
Lucas

Posted on • Originally published at apidog.com

O que é Arquitetura Composable? Guia Completo MACH e API-first

A arquitetura componível é uma forma de construir sistemas de software a partir de componentes independentes, intercambiáveis e “melhor-da-categoria”, conectados por APIs em vez de presos a uma única plataforma grande e fechada. Ela é o conceito mais amplo por trás do movimento headless e está diretamente relacionada à MACH Alliance, que promove tecnologia empresarial aberta e componível.

Experimente o Apidog hoje

Uma rápida desambiguação primeiro

A palavra “componível” aparece em contextos diferentes. Antes de aplicar o conceito na arquitetura da sua aplicação, separe estas três ideias:

  • Arquitetura componível: abordagem de design de software. Você monta uma aplicação a partir de capacidades de negócio separadas, integradas por APIs.
  • Infraestrutura componível: conceito de hardware e data center. Computação, armazenamento e rede são agrupados e alocados sob demanda para workloads.
  • Componibilidade DeFi: conceito de blockchain, também chamado de “legos do dinheiro”. Contratos inteligentes são combinados para criar novos produtos financeiros.

Neste artigo, “componível” significa arquitetura de software.

O que a arquitetura componível realmente significa

Um sistema componível é construído a partir de unidades modulares e autocontidas. Cada unidade possui uma função de negócio completa, expõe uma API e pode ser substituída sem exigir a reconstrução do sistema inteiro.

A unidade principal dessa composição é chamada de capacidade de negócio empacotada (packaged business capability), ou PBC. A Gartner define PBCs como capacidades implantáveis independentemente que incluem dados de negócios, lógica e processos autocontidos, interagindo com outras aplicações por APIs e canais de eventos.

Na prática, pense em PBCs como blocos de domínio:

  • Um PBC de pagamento gerencia métodos de pagamento, fraude, reembolsos e disputas.
  • Um PBC de pesquisa gerencia indexação, ranqueamento e consultas.
  • Um PBC de inventário gerencia disponibilidade, reservas e atualização de estoque.

Cada PBC deve expor uma API de nível de negócio, não apenas tabelas ou endpoints técnicos internos.

Exemplo simplificado de contrato para um PBC de inventário:

GET /inventory/products/{productId}/availability
Enter fullscreen mode Exit fullscreen mode

Resposta esperada:

{
  "productId": "SKU-123",
  "available": true,
  "quantity": 42,
  "warehouse": "BR-SP-01"
}
Enter fullscreen mode Exit fullscreen mode

Esse contrato permite que checkout, catálogo, app mobile ou atendimento consumam a mesma capacidade sem conhecer a implementação interna.

Componível vs monolito

Um monolito agrupa todas as capacidades em uma única aplicação implantável, normalmente com um banco de dados compartilhado. Isso é simples no início, mas tende a dificultar mudanças conforme o sistema cresce.

A arquitetura componível separa capacidades para que cada uma evolua de forma independente. Se você já comparou monolito e microsserviços, pense assim: microsserviços são uma decomposição técnica; PBCs são uma decomposição por domínio de negócio.

Dimensão Monolito Arquitetura componível
Unidade de mudança A aplicação inteira Um único PBC
Dados Um banco de dados compartilhado Cada capacidade possui seus dados
Escolha do fornecedor Uma plataforma única Melhor-da-categoria por capacidade
Front-end Acoplado ao back-end Desacoplado, com múltiplos canais
Integração Chamadas internas de função APIs e eventos
Risco de lock-in Alto Menor, com componentes substituíveis

A troca é direta: componível aumenta flexibilidade e substituibilidade, mas também adiciona mais integrações, contratos, observabilidade e governança.

MACH: o padrão que muitas equipes querem dizer

Quando equipes falam em “componível”, muitas vezes estão falando de uma stack alinhada aos princípios MACH. A MACH Alliance, fundada em 2020, promove esse modelo para sistemas abertos e componíveis.

MACH significa:

  • M — Microsserviços: capacidades implementadas como serviços pequenos e implantáveis independentemente.
  • A — API-first: cada função relevante é exposta por API. A UI é apenas um dos consumidores.
  • C — Cloud-native: componentes projetados para nuvem, elasticidade e serviços gerenciados.
  • H — Headless: front-end separado do back-end, permitindo web, mobile, quiosques, voz e outros canais.

Componível, headless e MACH não são sinônimos:

  • Headless é a separação entre front-end e back-end.
  • MACH é uma forma opinativa de implementar sistemas componíveis.
  • Componível é o conceito mais amplo.

Como começar a desenhar uma arquitetura componível

Antes de escolher ferramentas, defina os limites de negócio. Um caminho prático:

  1. Liste as capacidades do produto

    • Catálogo
    • Pagamento
    • Inventário
    • Busca
    • Conta do usuário
    • Notificações
  2. Identifique quais capacidades mudam com mais frequência

    • Se busca e checkout evoluem em ritmos diferentes, talvez devam ser PBCs separados.
  3. Defina o dono de cada capacidade

    • Cada PBC precisa de ownership claro: equipe, backlog, métricas e contrato de API.
  4. Projete o contrato antes da implementação

    • Use OpenAPI para descrever endpoints, schemas, erros e autenticação.
  5. Crie mocks para desbloquear consumidores

    • Front-end, QA e parceiros podem começar antes do back-end estar pronto.
  6. Automatize testes de contrato na CI

    • Toda mudança de API deve validar compatibilidade antes do deploy.

Um exemplo mínimo de contrato OpenAPI para um PBC de pagamento:

openapi: 3.0.3
info:
  title: Payment API
  version: 1.0.0
paths:
  /payments:
    post:
      summary: Cria uma solicitação de pagamento
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - orderId
                - amount
                - currency
              properties:
                orderId:
                  type: string
                amount:
                  type: number
                  format: float
                currency:
                  type: string
                  example: BRL
      responses:
        "201":
          description: Pagamento criado
          content:
            application/json:
              schema:
                type: object
                properties:
                  paymentId:
                    type: string
                  status:
                    type: string
                    enum:
                      - pending
                      - approved
                      - rejected
Enter fullscreen mode Exit fullscreen mode

A espinha dorsal API-first

Em uma arquitetura componível, a API é a camada de integração que mantém o sistema unido. Se cada componente é independente e possui seus próprios dados, o contrato entre eles passa a ser crítico.

Por isso, o desenvolvimento API-first é o pilar central. Em um monolito, módulos podem chamar funções internas ou acessar o mesmo banco. Em um sistema componível, esse atalho desaparece.

Na prática, uma boa API em uma arquitetura componível deve ter:

  • Contrato versionado.
  • Schemas explícitos.
  • Estratégia clara de autenticação.
  • Erros padronizados.
  • Documentação atualizada.
  • Testes automatizados.
  • Compatibilidade retroativa sempre que possível.

Um padrão simples de erro ajuda consumidores a tratar falhas de forma previsível:

{
  "error": {
    "code": "PAYMENT_DECLINED",
    "message": "O pagamento foi recusado pelo provedor.",
    "details": {
      "provider": "payment-gateway",
      "reason": "insufficient_funds"
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Quando o front-end é headless e as capacidades são intercambiáveis, a API é o produto. Se o contrato for mal projetado, todos os consumidores a jusante sofrem.

Benefícios e trade-offs

A arquitetura componível ajuda quando você precisa de flexibilidade e evolução independente.

Principais benefícios:

  • Melhor-da-categoria: escolha a melhor ferramenta para cada capacidade.
  • Mudança independente: atualize ou substitua um PBC sem alterar todo o sistema.
  • Menos lock-in: reduza dependência de uma única plataforma.
  • Equipes paralelas: times trabalham em capacidades diferentes sem bloquear uns aos outros.
  • Multicanal: APIs servem web, mobile, quiosques, integrações e outros clientes.

Custos que você precisa considerar:

  • Sobrecarga de integração: mais componentes significam mais conexões para configurar e monitorar.
  • Disciplina de contrato: uma mudança incompatível em uma API pode quebrar vários consumidores.
  • Complexidade operacional: autenticação, observabilidade, versionamento e deploy passam a abranger vários serviços.
  • Design inicial maior: você precisa investir mais tempo em limites de domínio e contratos.

Use componível quando flexibilidade, escala e múltiplos canais justificarem a complexidade. Se um monolito bem estruturado resolve o problema, ele pode ser a opção mais eficiente.

Onde o Apidog se encaixa: o pilar API-first

O Apidog não torna sua arquitetura componível sozinho. Ele não é CMS, motor de comércio, gateway de API ou plataforma MACH. O papel dele é apoiar o “A” de MACH: o pilar API-first.

Como a API é a interface entre componentes independentes, o contrato precisa ser projetado, testado, simulado e documentado corretamente. O Apidog ajuda nesse fluxo.

Você pode usá-lo para:

  • Projetar contratos design-first

    Defina a API de cada capacidade em OpenAPI antes da implementação. Assim, consumidores e provedores concordam com o contrato antecipadamente.

  • Criar servidores de mock

    Com mock APIs, equipes de front-end, QA e integrações externas podem trabalhar antes do back-end estar pronto.

  • Executar testes de API na CI

    Testes headless validam contratos sem depender de interface gráfica. Isso ajuda a detectar mudanças incompatíveis antes do deploy.

  • Gerenciar APIs a partir das ferramentas do time

    Com MCP, você pode conduzir o projeto de API a partir de um agente de IA ou IDE.

Um fluxo prático com Apidog em um PBC seria:

  1. Criar o contrato da API.
  2. Gerar documentação para consumidores.
  3. Publicar um mock server.
  4. Implementar o serviço real.
  5. Rodar testes automatizados contra o contrato.
  6. Validar mudanças antes de publicar novas versões.

Se o seu sistema segue o modelo API como produto, essa camada de qualidade ajuda a manter os contratos confiáveis. Baixe o Apidog para projetar e simular um contrato antes que o back-end exista.

Quando adotar a arquitetura componível

Considere arquitetura componível quando mais de uma destas afirmações for verdadeira:

  • Você precisa atender vários canais: web, mobile, loja física, voz ou integrações externas.
  • Diferentes capacidades mudam em ritmos muito distintos.
  • Você quer usar fornecedores melhor-da-categoria por capacidade.
  • Lock-in de fornecedor representa um risco real para o negócio.
  • Sua equipe consegue manter contratos de API, integração, observabilidade e versionamento ao longo do tempo.

Evite componível quando:

  • O produto ainda é pequeno e muda rapidamente.
  • Há uma única equipe trabalhando no sistema inteiro.
  • O domínio ainda não está claro.
  • O custo operacional de múltiplos serviços não se justifica.

Para uma equipe pequena entregando um único produto em prazo curto, um monolito limpo frequentemente é a escolha mais pragmática. Componível costuma justificar sua complexidade em escala.

Checklist de implementação

Use este checklist antes de quebrar uma aplicação em capacidades componíveis:

  • [ ] As capacidades de negócio estão claramente mapeadas?
  • [ ] Cada PBC tem dono técnico e de produto?
  • [ ] Cada PBC possui seus próprios dados?
  • [ ] As integrações são feitas por APIs ou eventos, não por acesso direto ao banco?
  • [ ] Os contratos estão descritos em OpenAPI?
  • [ ] Existem mocks para consumidores?
  • [ ] Existem testes automatizados de contrato?
  • [ ] Há estratégia de versionamento?
  • [ ] Erros e autenticação são padronizados?
  • [ ] Logs, métricas e tracing cobrem chamadas entre componentes?
  • [ ] Há plano para substituir componentes sem quebrar consumidores?

Perguntas frequentes

A arquitetura componível é o mesmo que microsserviços?

Não, mas eles se sobrepõem. Microsserviços são uma forma técnica de decompor um sistema em pequenos serviços implantáveis. Arquitetura componível decompõe o sistema por capacidades de negócio, ou PBCs, e adiciona a ideia de componentes melhor-da-categoria e intercambiáveis conectados por APIs.

Microsserviços são frequentemente a forma de implementar o back-end de um sistema componível. Para uma visão mais ampla, veja monolito versus microsserviços.

Qual a diferença entre componível e headless?

Headless significa que o front-end é separado do back-end, permitindo que diferentes clientes consumam as mesmas APIs.

Componível é mais amplo: significa montar o sistema a partir de capacidades independentes conectadas por APIs. Headless é um princípio comum em arquiteturas componíveis, mas você pode ter uma capacidade headless sem ter uma stack inteira componível.

O que é uma capacidade de negócio empacotada, ou PBC?

Um PBC é uma unidade autocontida que possui uma função de negócio completa, incluindo dados, lógica e APIs. Um componente de pesquisa, pagamento ou inventário pode ser um PBC se expõe uma API de nível de negócio e pode evoluir de forma independente.

Preciso de uma plataforma de API para ser componível?

Você precisa de uma forma consistente de projetar, testar e manter contratos de API estáveis. Isso pode ser feito com várias ferramentas ou com uma plataforma que reúna design, mock, testes e documentação.

O ponto principal não é o produto específico, mas a disciplina de contrato. Em arquitetura componível, o contrato é a cola entre os componentes.

Conclusão

Arquitetura componível é o conceito amplo. Headless, MACH e microsserviços são abordagens relacionadas dentro desse modelo. A ideia central é simples: capacidades independentes, escolha melhor-da-categoria e APIs como tecido conectivo.

O maior risco está justamente nas APIs. Em um sistema componível, o contrato é o sistema. Projetar, simular, testar e documentar APIs com uma ferramenta como o Apidog ajuda a criar uma base mais sólida para componentes substituíveis, multicanal e menos dependentes de uma única plataforma.

Top comments (0)