01. DADOS GERAIS
Produto: | TOTVS Transmite |
---|---|
Linha de Produto: | Linha Protheus |
Segmento: | Backoffice |
Módulo: | TOTVS Transmite |
Função: | Não Há |
País: | Brasil |
Ticket: | Não Há |
Requisito/Story/Issue (informe o requisito relacionado) : | DSERTSS3-4208 |
02. SITUAÇÃO/REQUISITO
Hoje dentro do contexto de integração TSS x Transmite, a comunicação entre a API de entrada (edi-api), e o serviço de consolidação das informações (edi-worker), ocorre por meio de mensageria simples, utilizando o RabbitMQ como ferramenta. Inicialmente este processo foi desenhado sem a utilização de bibliotecas adicionais, utilizando-se apenas a linguagem nativa do produto (C#), conforme a literatura sobre o assunto orienta.
Com o passar do tempo, porém, foram identificados cenários de exceção nesta comunicação, como o aumento excessivo de conexões e canais estabelecidos com o RabbitMQ, causando instabilidades nos serviços. Em análise, foi constatado que devido ao volume de informações que circulam por esta integração, aliado a simplicidade com que a conexão com o RabbitMQ foi desenvolvida, gerou-se o ambiente para que esses cenários aflorassem.
Portanto, faz-se necessário a intervenção nessa comunicação para devolver essa integração a normalidade. Dentro da TOTVS, existe uma equipe que confecciona um biblioteca em C#, o TOTVS .NET Core Framework (TNF) https://tnf.totvs.com.br/home, para padronização de diversas tarefas, dentre elas a mensageria via RabbitMQ. Em contato com time responsável, chegou-se a conclusão que para o cenário atual, realizar a migração da comunicação para utilização do TNF pode trazer a estabilidade desejada para a integração.
03. SOLUÇÃO
Partindo da premissa acima, para realizar a migração foi necessário:
- Incluir a biblioteca do TNF nos projetos edi-api e edi-worker;
- Criação dos eventos, baseados em classe base presente nesta, que serão disparados como objetos de comunicação entre os serviços;
- Criação de exchanges, no edi-api, por onde os novos eventos serão publicados;
- Alteração da estrutura geral do edi-worker, removendo o serviço anteriormente utilizado, substituindo-o pela implementação de consumidor base da biblioteca;
- Criação de exchanges adicionais, filas, principal e complementares e vínculos entre estes, para que eventos publicados sejam devidamente recebidos.
04. DEMAIS INFORMAÇÕES
Não Há.
05. ASSUNTOS RELACIONADOS
Não Há.