Plataforma SaaS de monitoramento e observabilidade de APIs — construída com arquitetura de microsserviços, Clean Architecture e Java Spring Boot.
Monitore suas APIs em tempo real, detecte falhas, meça latência e acompanhe o histórico de disponibilidade.
O PulseWatch foi desenvolvido como projeto de portfólio com foco em demonstrar arquitetura enterprise real, seguindo padrões utilizados em empresas SaaS e plataformas cloud.
Inspirado em plataformas como Datadog, UptimeRobot e New Relic.
pulsewatch/
├── auth-service/ Autenticação e identidade
├── monitoring-service/ Monitoramento de APIs
├── frontend/ Dashboard
├── incident-service/ (futuro)
├── notification-service/ (futuro)
└── analytics-service/ (futuro)
Cada serviço possui:
- Banco de dados próprio
- Responsabilidade única
- Deploy independente
- Comunicação via JWT
- Java 21
- Spring Boot 4
- Spring Security 7
- Spring Data JPA
- Flyway
- PostgreSQL
- Maven
- JWT Authentication
- Refresh Tokens
- RBAC (Role Based Access Control)
- Docker
- Docker Compose
- Docker Desktop instalado e rodando
git clone https://github.com/thiagovt093/pulsewatch.git
cd pulsewatchCrie um arquivo .env na raiz do projeto:
DB_USERNAME=postgres
DB_PASSWORD=sua_senha
JWT_SECRET=sua_chave_secreta_longa_aquidocker compose up --buildIsso vai subir automaticamente:
- PostgreSQL com os dois bancos criados
- auth-service na porta 8080
- monitoring-service na porta 8081
npm run devIsso vai subir automaticamente:
- PostgreSQL com os dois bancos criados
- auth-service na porta 8080
- monitoring-service na porta 8081
- frontend na porta 3000
Responsável por autenticação e identidade.
| Método | Rota | Descrição |
|---|---|---|
POST |
/auth/register |
Cadastro de usuário |
POST |
/auth/login |
Login |
POST |
/auth/refresh |
Renovar JWT |
GET |
/users/me |
Perfil autenticado |
Responsável por monitoramento de APIs.
| Método | Rota | Descrição |
|---|---|---|
POST |
/apis |
Cadastrar API |
GET |
/apis |
Listar APIs |
GET |
/apis/{id} |
Buscar API |
PUT |
/apis/{id} |
Atualizar API |
PATCH |
/apis/{id} |
Atualizar parcialmente |
DELETE |
/apis/{id} |
Deletar API |
GET |
/apis/{id}/history |
Histórico de checks |
1. Usuário se cadastra e faz login → recebe JWT
↓
2. Cadastra uma API para monitorar
↓
3. Scheduler verifica a API a cada 60 segundos
↓
4. Sistema detecta status: UP / DOWN / DEGRADED
↓
5. Histórico disponível via API
| Status | Descrição |
|---|---|
UP |
API respondendo normalmente |
DOWN |
API inacessível ou erro |
DEGRADED |
Latência acima do threshold (padrão 3000ms) |
PAUSED |
Monitoramento pausado |
- auth-service
- monitoring-service
- Docker + Docker Compose
- Landing Page
- Dashboard React + TypeScript
- Login e cadastro
- Listagem de APIs monitoradas
- Gráficos de uptime e latência
- incident-service
- notification-service (email, Discord, Telegram)
- analytics-service
- Redis cache
- Prometheus + Grafana
Desenvolvido por Thiago como projeto de portfólio para vagas Java Backend / Spring Boot.