Onde a Arquitetura Começa a Sangrar
Microserviços já são, por natureza, um terreno fértil para dívida técnica. Adicione serverless sem contexto de negócio e você cria o combo perfeito para tornar sua topologia impossível de depurar. A ilusão é sempre a mesma: “vou simplificar, reduzir custo e escalar automaticamente”. Na prática, você ganha cold start, perda de visibilidade e um ecossistema tão acoplado em eventos que qualquer mudança vira cirurgia aberta.
Casos reais mostram isso. Em estudos de sistemas financeiros distribuídos, como arquiteturas de Pix, a preocupação com fluxo, estado e próxima requisição é crítica — e o serverless, se mal usado, coloca tudo sob o tapete enquanto multiplica pontos de falha. Em eventos de arquitetura voltados a AWS (Kinesis, SQS, SNS), o aviso é claro: serverless não é panaceia; é mais uma peça, não a fundação inteira.
Como Trazer Pragmatismo Antes da Bagunça
A regra é simples: não migre microserviços para serverless sem medir latência, dependências e custo real. Quer usar? Use onde faz sentido:
- Serviços stateless com baixa sensibilidade a cold start
- Processamento assíncrono isolado
- Rotinas de automação interna
Se sua operação depende de garantir ordem, consistência e previsibilidade, empilhar Lambdas só vai queimar seu time.
Exemplo de Implementação de Gente Grande
Abaixo, a forma correta de integrar um microserviço existente com uma função serverless para automação de processos usando IA — sem acoplar o sistema inteiro. Aqui a Lambda atua como worker de inferência e o microserviço segue vivo e saudável.
// handler.js — Lambda de inferência IA integrada via SQS
const { BedrockRuntimeClient, InvokeModelCommand } = require("@aws-sdk/client-bedrock-runtime");
const client = new BedrockRuntimeClient();
exports.handler = async (event) => {
for (const record of event.Records) {
const payload = JSON.parse(record.body);
const command = new InvokeModelCommand({
modelId: "anthropic.claude-3-sonnet",
contentType: "application/json",
body: JSON.stringify({ prompt: payload.text })
});
const response = await client.send(command);
console.log("Resultado da IA:", response.body.toString());
}
};
// service.ts — Microserviço enviando tarefas ao worker IA via SQS
import { SQSClient, SendMessageCommand } from "@aws-sdk/client-sqs";
const client = new SQSClient({});
export async function enviarAnalise(texto: string) {
await client.send(new SendMessageCommand({
QueueUrl: process.env.QUEUE_URL!,
MessageBody: JSON.stringify({ text: texto })
}));
return { status: "enviado" };
}
Nesse fluxo, você não infecta seu ecossistema com eventos desnecessários: apenas delega processamento pesado.
O Preço da Decisão
Usar serverless com microserviços custa caro — e não estou falando só de dinheiro:
- Dor de Observabilidade: tracing entre funções vira um mosaico impossível.
- Cold start: latência explosiva em horários ociosos.
- Vendor lock-in: arquitetura cada vez mais dependente do modelo mental AWS.
- Over-engineering: times jovens criam mais eventos do que funcionalidades.
Mas recusar serverless também tem preço: você perde automação barata, processamento isolado e IA servida sob demanda.
Direto das Trincheiras
- Evite Lambda como endpoint crítico; reserve para tarefas internas.
- Force limites: se uma função tiver mais de um propósito, já virou microserviço mal disfarçado.
- Monitore cold start antes de escalar o uso; seu produto sente primeiro.
Fontes
[COM FICHA] Dissertação final – Faz um Pix! – Gabriel Medeiros_GM-2,
Agenda do evento – Login – 4.events
Obrigado por acompanhar essa reflexão até o fim!
Espero que esses pontos ajudem você a tomar decisões mais lúcidas no seu próximo projeto. Não deixe de conferir outros artigos aqui no blog, onde descascamos outros hypes da nossa área.
Valeu e até a próxima! 😉


