Documentation

Build something fast

Everything you need to integrate OwlMQ — from your first publish to production-grade self-healing playbooks.

⌘K

Get started

quickstart.tsTypeScript
import { OwlMQ } from '@owlmq/sdk';

// Initialize client
const client = new OwlMQ({
  apiKey: process.env.OWLMQ_API_KEY,
  region: 'us-east-1',
});

// Publish a message
await client.publish('orders.created', {
  orderId: 'ord_123',
  userId: 'usr_456',
  total: 99.99,
  currency: 'USD',
}, {
  priority: 'high',
  intent: 'payment.process',   // IAMP intent tag
});

// Consume messages
const consumer = client.consume('orders.created', {
  group: 'payment-service',
  concurrency: 5,
});

consumer.on('message', async (msg) => {
  await processPayment(msg.data);
  await msg.ack();
});

await consumer.start();
console.log('Consumer running at 10M+ msg/sec');

REST API Reference

v2.0
RESTBase URL:https://api.owlmq.dev
POST/v1/messages/publishPublish a message to a topic
POST/v1/messages/consumeLong-poll for messages from a consumer group
POST/v1/messages/{id}/ackAcknowledge successful message processing
POST/v1/messages/{id}/nackNegative-acknowledge and requeue with delay
GET/v1/queuesList all queues in tenant
POST/v1/queuesCreate a new queue with IAMP config
DELETE/v1/queues/{name}Delete a queue and all pending messages
GET/v1/metricsPrometheus metrics endpoint (tenant-scoped)
GET/v1/trace/{correlationId}Fetch causal message graph for a correlation ID
POST/v1/playbooksCreate a self-healing playbook
GET/v1/playbooks/{id}/runsGet playbook execution history
GET/v1/intelligence/routingGet AI routing decisions (last 1000)

IAMP Protocol

The Intent-Aware Message Protocol (IAMP) is OwlMQ's core innovation. Every message carries semantic intent, enabling AI-powered routing, priority inference, and self-healing without config changes.

iamp-envelope.jsonJSON Schema
{
  "messageId": "msg_01HX...",          // Unique ID (ULID)
  "correlationId": "corr_ord_123",     // Causal chain ID
  "intent": "payment.process",         // Semantic intent tag
  "topic": "orders.created",           // Routing topic
  "payload": { ... },                  // Your message data
  "metadata": {
    "priority": "high",                // critical | high | normal | low
    "ttl": 3600,                       // Seconds to live
    "retryPolicy": {
      "maxAttempts": 3,
      "backoff": "exponential"
    },
    "sla": {
      "maxLatencyMs": 200,             // SLA enforcement
      "alertThreshold": 0.95           // 95th percentile target
    }
  },
  "publishedAt": "2025-01-15T10:30:00Z",
  "publishedBy": "payment-service/v2"
}

Self-Healing Playbooks

Pro+

Playbooks are declarative YAML files that define automated responses to queue anomalies. When a condition is met, OwlMQ executes the playbook automatically.

payment-queue.playbook.yamlYAML
name: payment-queue-healing
version: "1.0"
target: orders.payment

triggers:
  - type: lag_exceeded
    threshold: 10000          # messages
    window: 60s
  - type: error_rate
    threshold: 0.05           # 5% error rate
    window: 300s

actions:
  - step: scale_consumers
    scale_by: 3x
    max_instances: 50

  - step: reroute_traffic
    condition: error_rate > 0.1
    target_queue: orders.payment.fallback
    percentage: 50

  - step: alert
    channels: [slack, pagerduty]
    severity: high
    message: "Payment queue healing triggered: {{ trigger.type }}"

rollback:
  on_failure: restore_previous_state
  timeout: 300s

15+ official SDKs

TypeScriptJavaScriptPythonGoRustJavaKotlinC#PHPRubySwiftDartElixirScalaClojure

Observability

Pro+
📈

Prometheus Metrics

Expose `/v1/metrics` to your scrape config. Includes lag, throughput, latency histograms, and error rates per queue.

owlmq_queue_lag{queue="orders.payment"} 142
🔍

OpenTelemetry Tracing

Distributed traces across publish → route → consume. Compatible with Jaeger, Tempo, and Honeycomb.

OTEL_EXPORTER_OTLP_ENDPOINT=https://api.honeycomb.io
🗄️

ClickHouse Analytics

Stream all events to ClickHouse for real-time analytics dashboards. Query billions of events in milliseconds.

SELECT topic, count() FROM owlmq.events GROUP BY topic

Need help? We're here.

Internal HyperBridge platform. Reach out to the OwlMQ team directly — we respond within hours.