Mupelt

Documentation

Mupelt

A message queue and event broker in a single binary.

Mupelt is a single-binary broker that moves jobs and events between services. Producers publish over HTTP; consumers subscribe over a long-lived stream and receive work as it arrives, with at-least-once delivery guarantees.

Work is grouped into queues. Each queue keeps its own durable log, retry policy, and dead-letter queue, so unrelated workloads stay isolated on one broker.

#Installation

Mupelt ships as one static binary. Place it on your host and start it:

# download and start
$ curl -sSL get.lemana.fun/install | sh
$ mupelt start --data /var/lib/mupelt
→ listening on :5300 · api ready
By default the broker binds to 127.0.0.1:5300. Put it behind your own reverse proxy to expose it over TLS.

#Quickstart

# publish a job
$ curl -X POST :5300/v1/queues/email/jobs \
    -d '{"to":"a@b.c"}'
→ queued · id job_8f2a

# consume from a worker
$ mupelt consume email
→ job_8f2a {"to":"a@b.c"}

#Configuration

Configure with flags, environment variables, or a small YAML file. Flags take precedence.

# mupelt.yaml
data:    /var/lib/mupelt
listen:  127.0.0.1:5300
log:     info
retries:
  max: 5
  backoff: 30s

#API reference

Every route lives under /v1/queues/<name>. Requests without a valid token return 401.

Method & pathDescription
POST /v1/queues/{q}/jobsPublish a job to a queue.
GET /v1/queues/{q}/_streamStream jobs to a consumer.
POST /v1/queues/{q}/ack/{id}Acknowledge a completed job.
GET /v1/queues/{q}Queue depth and retry stats.
GET /healthLiveness probe. Returns 200 when the broker is ready.

#CLI

The mupelt binary is both the server and the client.

CommandDescription
mupelt startStart the broker.
mupelt consume <queue>Consume jobs from a queue.
mupelt queues lsList queues.
mupelt statusShow broker health and queue depths.