Sobre o projeto
O QPub Server é um servidor de mensagens auto-hospedável que combina canais pub/sub em tempo real com filas de tarefas, expostos por interfaces REST e WebSocket. Destina-se a equipes que desejam executar sua própria infraestrutura de mensagens em vez de depender de um serviço hospedado.
Recursos principais
- Canais: mensagens de publicação/assinatura entregues via WebSocket, com publicação disponível por REST.
- Filas de tarefas: enfileirar e retirar itens de trabalho, executar workers e receber webhooks.
- Multi-tenancy: os tenants são isolados entre si e podem ter limites de taxa aplicados.
- Autenticação: chaves de API e tokens de cliente protegem o acesso; um token de controle separado protege a API de provisionamento.
- API de Controle: gerenciar tenants, chaves de API, limites, filas e workers, e inspecionar estatísticas e conexões em tempo real.
Serviços de apoio
O servidor depende do NATS JetStream, Redis e Postgres, com CockroachDB suportado como banco de dados alternativo por meio de uma configuração de driver.
Primeiros passos
O README sugere copiar o arquivo de ambiente de exemplo e executar o Docker Compose, que inicia o Postgres junto com Redis e NATS. As portas padrão são 8091 para a API de Controle, 8111 para REST e 8131 para WebSocket. Um tenant e uma chave de API devem ser criados por meio da API de Controle antes que chamadas REST ou WebSocket possam ser feitas. Um caminho de compilação local também é documentado usando ferramentas Go, exigindo que os mesmos serviços de apoio estejam acessíveis por meio da configuração de ambiente.
A API de Controle é autenticada com um token bearer ou um cabeçalho personalizado; se o token for deixado vazio, a API de controle fica aberta, o que o README observa ser apenas para desenvolvimento local. Os endpoints documentados abrangem verificações de integridade, identidade e métricas da instância, criação, listagem, recuperação e exclusão de tenants, estatísticas por tenant, conexões, canais, limites de taxa, chaves de API, filas e workers.
O projeto é licenciado sob a Apache License 2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.