Sobre este projeto
it-programming / web-development
Aberto
Busco profissional com experiência sólida em Java e C# (.net) para atuar na evolução e estabilização de um sistema erp já em produção, focado na execução de ordens de serviço em campo e na geração de relatórios em pdf.
O objetivo inicial é corrigir problemas existentes, otimizar fluxos críticos e preparar a base para evoluções estruturais futuras.
Contexto do sistema
O erp é baseado em microsserviços e utiliza formulários dinâmicos, configuráveis pelo usuário, cujas informações preenchidas em campo são consolidadas em relatórios pdf.
Tecnologias atuais:
Java 11 e 17 na maior parte dos microsserviços
.NET 8 no serviço de geração de relatórios
QuestPDF (Fluent API) para geração de PDFs
Mensageria para processamento assíncrono
Front-end acompanha a geração via polling
Situação atual
O fluxo de geração de relatórios funciona, porém apresenta instabilidades, atrasos e gargalos, principalmente em cenários de alto volume, como geração por range de datas.
O trabalho consiste em revisar e reestruturar esse fluxo, tornando-o mais eficiente, confiável, escalável e simples de manter.
Escopo técnico esperado
Infraestrutura
Avaliar e propor melhorias no ambiente de deploy
Planejar e implementar Kubernetes para escalabilidade e alta disponibilidade
Padronizar o modelo de execução dos serviços Java e .NET
Aperfeiçoar a esteira de deploy
Implementar Elastic Stack nos serviços Term, Order_Service, Locale (Java) e Report (.NET)
Novo fluxo funcional
Será implementado um novo tipo de formulário que permitirá o upload de arquivos PDF (armazenados em Base64).
Durante a geração do relatório, caso esses arquivos existam, deverá ser feita uma chamada para uma api de ocr já existente, que retorna textos, imagens e estrutura do documento.
O relatório final deverá consolidar:
Dados preenchidos manualmente pelo usuário
Textos extraídos via OCR
Informações adicionais da Ordem de Serviço
Revisão do fluxo de geração de relatórios
O fluxo atual envolve múltiplas chamadas entre microsserviços, publicação e consumo interno de mensagens e polling no front-end. Esse processo será reprojetado para reduzir latência, complexidade e falhas.
Diretrizes esperadas:
Introdução do conceito de Job de Relatório (jobId) para qualquer geração
Endpoints retornando jobId e status de processamento
Publicação de uma única mensagem por job
Fan-out (range de OS) executado exclusivamente no worker
Persistência de estado do job (status, progresso, erros, arquivos)
Idempotência, deduplicação e reprocessamento seguro
Paralelismo controlado, retries com backoff e dead-letter queue
Redução de chamadas síncronas entre microsserviços
Uso de object storage para PDFs e ZIPs
Liberação de download apenas após conclusão
Acompanhamento via SSE/WebSocket ou polling com backoff
Observabilidade com correlationId, logs estruturados, métricas e tracing
Controle de acesso por tenant/usuário e URLs assinadas quando aplicável
Evolução futura
As APIs atualmente desenvolvidas em Java podem ser migradas para .NET futuramente. Essa decisão não faz parte do escopo inicial e será avaliada após a conclusão da primeira etapa, conforme qualidade da entrega e alinhamento técnico.
Categoria TI e Programação
Subcategoria Programação
Qual é o alcance do projeto? Criar um novo site personalizado
Prazo de Entrega: Não estabelecido
Habilidades necessárias