avatar
Publicado por

Tecnologias usadas no projeto SGA

Authors
  • avatar
    Name
    Gabriel Gava Pinheiro
    Twitter

Introdução

Seja bem-vindo ao artigo onde detalho o projeto SGA (Sistema de Gestão Agrometeorológica). Aqui, você encontrará informações sobre as tecnologias empregadas, a importância desse projeto para o IDR (Instituto de Desenvolvimento Rural do Paraná), e como ele se tornou a base do meu conhecimento sobre APIs e desenvolvimento web.

As Tecnologias mais utilizadas no Projeto SGA

O projeto SGA foi dividido em duas partes principais e teve duração de 4 meses. Foi desenvolvido integralmente em Node.js com React, utilizando o banco de dados PostgreSQL. Para otimizar o desempenho, utilizamos Redis para cache e iniciamos a implementação de uma fila com microserviço. Embora não tenha seguido o padrão convencional de microserviços, pois trabalhei apenas com funções separadas para evitar congestionamento e sobrecarga do servidor.

Motivação do Projeto

O SGA, Sistema de Gerenciamento Agrometeorológico, permite que todos os pesquisadores do IDR acessem dados agrometeorológicos de forma rápida e precisa, essenciais para estudos e projetos internos. Por isso, desenvolvemos tanto a API (Application Programming Interface) quanto a interface web:

  • A interface web é utilizada pelos pesquisadores para extrair dados do banco de dados do IDR para análise climática.
  • A API é utilizada para integrar sistemas de irrigação, controle de horas de frio e outros projetos internos do IDR.

Imagem do SGA Web

Imagem da API do SGA

Esta imagem ilustra a documentação da API do SGA, mostrando as rotas disponíveis para que os usuários possam desenvolver aplicações baseadas nessa API.

Imagem da API do SGA

Maiores Desafios

O sistema lida com uma base de dados extensa, contendo mais de 20 anos de leituras de sensores, atualizadas a cada 15 minutos. O principal desafio foi gerenciar essa vasta quantidade de dados de forma eficiente. Utilizamos o modo cluster do Node.js para processamento concorrente nos núcleos do servidor, além de um cache simples e processamento em fila. No entanto, devido à configuração e demanda, a fila foi removida, pois o servidor conseguia lidar com o volume de requisições diárias.

Outro desafio foi gerenciar as mais de 40 variáveis que podiam ser consultadas no sistema. Adotamos várias medidas para proteger o banco de dados e implementamos autenticações robustas por meio de chaves.

Além disso, o sistema possui um modelo de cobrança baseado no volume de dados acessados, permitindo a monetização dos serviços oferecidos.

Conclusão

O projeto SGA foi o mais complexo e desafiador em minha carreira de programador até o momento. Exigiu dedicação intensa e um profundo conhecimento em arquitetura de sistemas, Node.js e React.