// 01 · Serviço headless
Um binário, sem UI embutida. Sua app nunca importa GFire como biblioteca — só HTTP e curl.
GFire é um serviço Go headless: apps enfileiram trabalho via HTTP, workers executam binários handlers externos, estado vive em PostgreSQL, Redis ou ValKey. v1.0.0 — pronto para produção: bulk enqueue, cron recorrente, métricas Prometheus, CLI e testes E2E incluídos.
curl -fsSL https://get.gfire.hermesrodriguez.com/install.sh | sh
Um binário, sem UI embutida. Sua app nunca importa GFire como biblioteca — só HTTP e curl.
PostgreSQL com SKIP LOCKED, Redis/ValKey com BRPOP e scripts Lua. Escolha o backend do seu stack.
Nós peer, storage compartilhado, sem Raft. Adicione pods; coordenação via storage.
Notas técnicas · v1.0.0
GFire é um serviço headless de orquestração: qualquer cliente HTTP enfileira sem library atada a runtime. v1.0.0 entrega o stack completo — backends PostgreSQL (SKIP LOCKED), Redis e ValKey, API REST com bulk enqueue e chaves de idempotência, jobs cron recorrentes com distributed locks, CLI, métricas Prometheus e suite E2E. Agnóstico por design; handlers são binários externos.
Um driver para Redis e ValKey — troque o endereço, mesma implementação. Compatível com forks open source e Redis gerenciado.
Workers bloqueiam na fila em vez de polling. Menos CPU e rede; o job acorda o worker na chegada.
N nós GFire peer compartilham storage — sem Raft entre pods. Lua move jobs atomicamente; integridade na camada de dados.
Jobs adiados usam score = timestamp Unix. Scheduler só puxa trabalho vencido — escala com backlogs grandes.
| Ferramenta | Modelo | Storage | Acoplamento |
|---|---|---|---|
| GFire | HTTP / serviço headless | PostgreSQL, Redis, ValKey | Alto — agnóstico |
| Faktory | Protocolo / headless | Redis | Alto — protocolo TCP propio |
| Asynq | Librería Go (embebida) | Redis | Bajo — solo Go |
| River | Librería Go (embebida) | PostgreSQL | Bajo — solo Go |
| Sidekiq | Gema Ruby (embebida) | Redis | Bajo — solo Ruby |
| Celery | Librería Python (embebida) | Redis, RabbitMQ, SQL | Medio — Python primero |
GFire é standalone: enqueue com curl ou HTTP/JSON — sem SDK na app. Diferente do TCP do Faktory ou libs embarcadas, handlers são binários externos.
GFire não executa sua lógica in-process. Workers fazem dequeue e spawnam subprocesso por job (`cmd` no YAML). Handlers Go, Python, Node, shell — GFire rastreia exit, retries, continuations. Handlers não falam com Redis/PostgreSQL.
Jobs são gatilhos pequenos, não payloads pesados. Dados grandes em S3 ou DB; GFire carrega a instrução. Memória Redis previsível.
Instale o CLI e verifique o binário (hoje: gfire version).
$ curl -fsSL https://get.gfire.hermesrodriguez.com/install.sh | sh $ gfire version
v1.0.0 — release estável. API REST, worker engine e CLI completos.
Marcos planejados:ROADMAP.md
| Repo | Papel |
|---|---|
| hrodrig/gfire | Serviço, backends de storage, releases |
| SPECIFICATIONS.md | Contrato de comportamento e design |