Repository navigation
Este release reestrutura a camada de rede da API com a Tangle (IOTA), focando em alta performance, prevenção de falhas sistêmicas e observabilidade profunda.
✨ Features
Pool e Cache de Conexões HTTP (client/client.go): Implementa o padrão Singleton e cache concorrente para reutilizar conexões TCP contínuas (Keep-Alive). Isso reduz a latência de inicialização de novas chamadas e evita o esgotamento de portas (sockets) no servidor.
Middleware de Interceptação (client/logging_transport.go): Aplica o padrão Decorator sobre a interface http.RoundTripper nativa do Go, inspecionando e registrando automaticamente métodos, URLs, status de resposta e volumetria de bytes transferidos em todas as requisições.
Busca Paginada por Índice (messages/getMessagesByIndexWithLimit.go): Adiciona uma função de recuperação limitada (bounded retrieval) com pré-alocação de memória. Ao buscar apenas as 'N' mensagens mais recentes de um índice, o sistema reduz drasticamente o número de requisições HTTP e previne estouros de memória (OOM).
♻️ Refactors
Propagação de Contexto (context.Context): Atualiza as assinaturas das funções para exigir a injeção do contexto, unificando o controle de ciclo de vida das rotinas. Isso aplica timeouts estritos a todo o processo, impedindo que a API trave (hang) indefinidamente caso o nó IOTA caia ou demore a responder durante o envio ou leitura.
Otimização de Performance em Loops: Modifica a estrutura de busca de mensagens em lote (como GetAllMessagesByIndex). O cliente HTTP em cache agora é repassado como argumento para as chamadas internas, eliminando completamente a recriação custosa de conexões TCP a cada iteração do laço for.
Padronização da Observabilidade: Adoção de logs estruturados utilizando o prefixo [TANGLE-CLIENT] em toda a aplicação, facilitando o rastreamento passo a passo e o diagnóstico da saúde do nó da Tangle.