Portfolio

Observabilidade

Visão geral dos serviços, arquitetura e métricas em tempo real.

Infraestrutura

Latência por serviço

Nginxverificando...

/nginx-health

-
Gateway-APIverificando...

/api/health

-
Weather-APIverificando...

/api/weather/health

-
NPS-APIverificando...

/api/nps/summary

-

Arquitetura

Browser
HTTP
Nginx
Reverse Proxy · TLS
Frontend
Next.js 14
Gateway-API
Rate Limit · Proxy
Weather-API
Spring Boot 3
NPS-API
Fastify + Prisma
Elasticsearch
design
PostgreSQL
produção
online degradado offlineverificado a cada 30s

Serviços

Nginx
Reverse Proxy

Único ponto de entrada externo. Termina o TCP, aplica headers de segurança e distribui o tráfego para frontend ou gateway.

Nginx 1.27
Alpine Linux
Gateway-API
docs
Layered SOA

Proxy reverso e único ponto de entrada para os backends. Rate limiting por IP, CORS, logging estruturado e arquitetura preparada para JWT, API Key ou OAuth2 sem mudanças estruturais.

Node.js 20
TypeScript
Fastify 4
axios
Weather-API
docs
Hexagonal

Consulta clima atual e previsão via OpenWeather API. Histórico de consultas persistido no Elasticsearch com queries por período e cidade.

Java 21
Spring Boot 3.3
WebClient
Elasticsearch 8
Docker
NPS-API
docs
Hexagonal

Coleta avaliações Net Promoter Score, calcula score e zone (Crítico / Aperfeiçoamento / Qualidade / Excelência). Dados persistidos no PostgreSQL via Prisma.

Node.js 20
TypeScript
Fastify 4
Prisma 5
PostgreSQL 15
Elasticsearch
Design Decision

Banco de dados projetado para a Weather-API: buscas full-text, agregações em séries temporais e queries por período/cidade em escala. O adapter de saída da arquitetura hexagonal foi construído para ele. Contudo, por motivo de infraestrutura, usamos PostgreSQL no lugar — explicações no README do GitHub.

Elasticsearch 8
REST API
Index per entity
Frontend
SSR / React

Dashboard interativo com mapa de clima em tempo real (Leaflet + OpenStreetMap), gráficos (Recharts) e formulário NPS. Esta página que você está lendo.

Next.js 14
shadcn/ui
Tailwind CSS
Recharts
Leaflet
TanStack Query

Métricas em tempo real

Clima em São Pauloao vivo
Carregando clima...

via Weather-API → Nginx → Gateway → OpenWeather

NPS Global do Portfólioao vivo
Carregando NPS...

via NPS-API → Nginx → Gateway → PostgreSQL