Ir para o conteúdo

3. Arquitetura versus Design em Contexto de IA

A distinção entre arquitetura e design de software adquire novas dimensões na era da IA generativa. Enquanto a arquitetura lida com orquestração de sistemas complexos incluindo LLMs e agentes, o design foca na especificação precisa de comportamentos e contextos. Compreender esta diferenciação é fundamental para organizações que buscam integrar IA em seus produtos.

3.1 Diferenciação em Contexto de IA

A fronteira entre arquitetura e design, tradicionalmente fluida, estabiliza-se em novos contornos quando sistemas de IA entram em cena.

Arquitetura de Software com IA

A arquitetura mantém seu foco em estrutura de alto nível, mas expande seu escopo para incluir:

Orquestração de LLMs:

  • Decisões sobre quais modelos utilizar em diferentes contextos
  • Estratégias de roteamento entre múltiplos modelos
  • Padrões de fallback e circuit breakers para APIs de IA

Infraestrutura de RAG (Retrieval-Augmented Generation):

  • Arquitetura de pipelines de ingestão de conhecimento
  • Estratégias de indexação e embedding
  • Sistemas de cache e otimização de retrieval

Sistemas de Agentes:

  • Topologias de colaboração multi-agent
  • Protocolos de comunicação entre agentes
  • Mecanismos de coordenação e resolução de conflitos

Padrões Organizacionais:

  • Governance de uso de IA
  • Padrões de segurança e privacidade
  • Estratégias de custo e otimização de tokens

Design de Software com IA

O design concentra-se na implementação de componentes individuais:

Refinamento de Prompts:

  • Especificação de system prompts
  • Design de templates de usuário
  • Engenharia de exemplos few-shot

Interfaces entre Mundos:

  • Contratos entre módulos de IA e código tradicional
  • Adaptadores para integração de respostas probabilísticas
  • Estratégias de serialização e desserialização

Componentes de Contexto:

  • Design de estruturas de memória
  • Especificação de pipelines de contexto
  • Definição de schemas de entrada e saída

Uma Distinção Prática

Arquitetura decide *se* e *onde* usar IA. Design decide *como* especificar
o contexto para que a IA produza resultados adequados.

Segundo InfoQ (2024), embora a IA não tenha mudado significativamente a prática da arquitetura de software — que continua focada em contexto organizacional e trade-offs — está mudando drasticamente os produtos sendo arquitetados 1.

3.2 O Papel do Arquiteto de Software com IA

Pesquisa do iSAQB (International Software Architecture Qualification Board) em 2025 identificou que ferramentas de IA suportam arquitetos de software em cinco das seis atividades principais da disciplina 2:

1. Clarificação de Requisitos

A IA auxilia na análise de documentação extensa, extração de requisitos implícitos e identificação de conflitos. O arquiteto utiliza LLMs para:

  • Processar documentação legada e extrair regras de negócio
  • Analisar transcrições de entrevistas com stakeholders
  • Identificar inconsistências em especificações

2. Design de Estruturas

Ferramentas de IA aceleram a criação de provas de conceito (POCs) e a geração de código/documentação de scaffolding:

## Exemplo de Interação Arquiteto-IA

Arquiteto: "Crie uma POC de arquitetura hexagonal para um
serviço de processamento de pagamentos, incluindo adapters
para REST e persistência em PostgreSQL."

IA: Gera estrutura de diretórios, interfaces de ports,
implementações iniciais de adapters e configuração de
dependências.

Arquiteto: Revisa, ajusta e valida contra requisitos não-funcionais.

3. Design de Conceitos Transversais

A IA auxilia na criação de conceitos cross-cutting e seus diagramas:

  • Geração de esqueletos para logging, monitoramento, segurança
  • Criação de diagramas arquiteturais a partir de descrições
  • Sugestão de padrões para preocupações transversais

4. Avaliação de Arquiteturas

Sistemas de IA podem gerar checklists de avaliação automatizados:

  • Análise de conformidade com padrões arquiteturais
  • Identificação de anti-patterns em diagramas
  • Geração de cenários de teste arquitetural

5. Comunicação

A tradução entre linguagens técnicas e de negócio é facilitada:

  • Explicação de decisões arquiteturais para stakeholders não-técnicos
  • Tradução de requisitos de negócio em termos técnicos
  • Geração de documentação em múltiplos formatos

3.3 Tensões e Trade-offs Específicos

A introdução de componentes de IA cria tensões arquiteturais únicas que o arquiteto deve endereçar.

Determinismo versus Probabilidade

O Desafio: Software tradicional assume comportamento determinístico. LLMs introduzem incerteza como elemento de primeira classe.

Estratégias de Mitigação:

Estratégia Descrição Quando Usar
Temperatura Zero Configurar modelo para máxima determinização Respostas factuais, código
Fallback Determinístico Regras tradicionais como backup Casos críticos de negócio
Validação Estruturada Schemas rigorosos de saída Integrações com sistemas legados
N Version Programming Múltiplas chamadas e consenso Decisões de alta criticidade

Latência e Custo

Chamadas a LLMs introduzem latência significativa e custos variáveis baseados em tokens.

Considerações de Design:

  • Caching: Estratégias de cache de respostas para queries similares
  • Batching: Agrupamento de requisições para otimização de throughput
  • Model Tiering: Uso de modelos menores para tarefas simples, maiores apenas quando necessário

Exemplo de Arquitetura com Tiering:

┌─────────────────────────────────────────────┐
│              API Gateway                     │
└──────────────┬──────────────────────────────┘
       ┌───────┴────────┐
       │   Router LLM   │ ← Modelo leve (routing)
       └───────┬────────┘
     ┌─────────┼─────────┐
     ▼         ▼         ▼
┌────────┐ ┌────────┐ ┌────────┐
│ Fast   │ │ Smart  │ │ Expert │
│ LLM    │ │ LLM    │ │ LLM    │
│ (Gemma)│ │ (GPT4) │ │ (Claude│
│        │ │        │ │ Opus)  │
└────────┘ └────────┘ └────────┘

Graceful Degradation

Sistemas com IA devem degradar elegantemente quando componentes probabilísticos falham:

Níveis de Degradação:

  1. Full AI: Respostas geradas por LLM
  2. Cached Responses: Respostas previamente geradas
  3. Template-Based: Respostas baseadas em templates pré-definidos
  4. Static Fallback: Mensagens estáticas informativas
  5. Silent Pass-through: Delegação para sistema anterior
class ResilientAIService:
    def process(self, request):
        try:
            return self.llm.generate(request)
        except LLMError:
            # Nível 2: Cache
            if cached := self.cache.get(request.hash):
                return cached
            # Nível 3: Template
            if template := self.find_template(request):
                return template.fill(request.params)
            # Nível 4: Fallback
            return self.fallback_response()

3.4 A Fronteira em Evolução

A distinção entre arquitetura e design torna-se dinâmica em projetos com IA:

  • Ascensão do Context Engineer: Um novo papel que opera na interseção, projetando pipelines de informação que alimentam tanto decisões arquiteturais quanto implementações de design
  • Colaboração Aumentada: Arquitetos e designers colaboram mais intensamente, pois decisões de contexto afetam ambos os níveis
  • Feedback Loop Rápido: A capacidade de gerar POCs rapidamente encurta o ciclo entre concepção arquitetural e validação de design

Competências Híbridas

O profissional de software do futuro não escolherá entre ser arquiteto ou
designer. Será necessário fluidez em ambos os domínios, com profundidade
adicional em engenharia de contexto.

Referências


  1. InfoQ. "Software Architecture and Design Trends Report." April 2024. 

  2. iSAQB. "Software Architects and AI Systems: Challenges and Opportunities." 2025.