Getting Started

Really Simple Message Queue (RSMQ) is a lightweight message queue with a REST API, backed by Redis. It lets you create named queues, send messages, receive the next message, and delete processed messages — all over HTTP, with no extra client library needed. Available as an open web service in Eyevinn Open Source Cloud.

Prerequisites

Step 1: Create a Valkey instance

Navigate to the Valkey service in Eyevinn OSC, click Create valkey, enter a name (e.g. msgstore), and wait for it to start.

Click the instance card when it is running and note the host and port shown in the connection details. Your Redis URL will be:

redis://{host}:{port}

Step 2: Store the Valkey URL as a secret

Navigate to the RSMQ service, go to the Service Secrets tab, and click New Secret. Name it redisurl and paste the Valkey connection URL as the value.

Step 3: Create an RSMQ instance

Click Create rest-rsmq, fill in:

Field Value
Name e.g. myqueue
RedisUrl {{secrets.redisurl}}

Click Create. When the status turns green, click the instance card to copy the base URL.

Step 4: Manage queues and messages

Create a queue:

curl -X POST https://{instance-url}/queues/tasks \
  -H 'Content-Type: application/json' \
  -d '{"maxsize": -1, "vt": 30}'

Send a message:

curl -X POST https://{instance-url}/queues/tasks/messages \
  -H 'Content-Type: application/json' \
  -d '{"message": "{\"job\":\"resize\",\"file\":\"photo.jpg\"}"}'

Receive the next message (marks it invisible for vt seconds):

curl https://{instance-url}/queues/tasks/messages/pop

Delete a processed message:

curl -X DELETE https://{instance-url}/queues/tasks/messages/{id}

Usage Example

const BASE = 'https://myqueue.smrchy-rest-rsmq.auto.prod.osaas.io';

async function enqueue(job) {
  await fetch(`${BASE}/queues/jobs/messages`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ message: JSON.stringify(job) })
  });
}

async function dequeue() {
  const res = await fetch(`${BASE}/queues/jobs/messages/pop`);
  return res.ok ? res.json() : null;
}

CLI Usage

# Create the Valkey instance first
osc create valkey-io-valkey msgstore

# Then create RSMQ pointing at it
osc create smrchy-rest-rsmq myqueue -o RedisUrl="redis://{valkey-host}:{valkey-port}"

Resources