pulse
Guides

Getting started

Run the server

pulse is a single binary (pulsed) in front of PostgreSQL. Pick one:

Docker Compose — Postgres included, no clone needed:

curl -fsSL https://raw.githubusercontent.com/bete7512/pulse/main/docker-compose.yml -o docker-compose.yml
docker compose up

Plain Docker — bring your own Postgres:

docker run -p 50051:50051 \
  -e DB_HOST=postgres://user:pass@host:5432/pulse \
  bete7512/pulse

From source:

git clone https://github.com/bete7512/pulse && cd pulse
echo 'DB_HOST=postgres://user:pass@localhost:5432/pulse' > .env
make migrate_up && make run

Migrations run automatically on boot; the server listens on :50051.

Configuration

variablerequireddescription
DB_HOSTyesPostgres URL
PULSE_GRPC_ADDRnolisten port (default 50051)
PULSE_AUTH_USERSno"user:pass,user:$2a$10$…" — plaintext or bcrypt; unset = open
PULSE_TLS_CERT / PULSE_TLS_KEYnoserve TLS from this keypair (both or neither)

First job

go install github.com/bete7512/pulse/cli/pulse@latest

pulse submit hello '{"msg":"world"}'
pulse jobs list

The job sits PENDING until a worker registers a handler for the hello topic — see Using the SDK. A complete runnable worker lives in examples/main.go.

On this page