Simple, RESTful, Scalable Messaging
Simple REST API for reliable message delivery. Easy to integrate, built for simplicity. Features persistence, retry strategies, TTL support, and real-time polling.
Scroll to explore features
Just HTTP. That's it.
Send and receive messages using familiar REST patterns. No SDKs, no special clients.
Complete Example
const host = 'https://api.okmq.net'
const token = process.env.OKMQ_TOKEN
// Create queue (only needed once)
await fetch(`${host}/queues`, {
method: 'POST',
headers: { authorization: token, 'content-type': 'application/json' },
body: JSON.stringify({ name: 'demo', auto_ack: true })
})
// consumer
const consumer = async () => {
while (true) {
const response = await fetch(`${host}/queues/demo/messages`, {
headers: { authorization: token }
})
const messages = await response.json()
console.log('📨 Received:', messages)
}
}
// Start consumer in background
consumer()
// producer
setInterval(async () => {
await fetch(`${host}/queues/demo/messages`, {
method: 'POST',
headers: { authorization: token, 'content-type': 'application/json' },
body: JSON.stringify([{
id: `msg-${Date.now()}`,
body: `Hello at ${new Date().toISOString()}`
}])
})
}, 1000)
Features
Everything you need for reliable message processing
Topics
Publish to topics for fan-out distribution to multiple queues
Unlimited Throughput
No per-message charges - pay only for GB/month storage, send millions of messages at no extra cost
Real-time Polling
Instant message retrieval with long polling support
Deduplication
Automatically prevent duplicate messages from processing
TTL Support
Automatic cleanup of expired messages
Message Tags
Filter and organize messages within a single queue
Retry Strategies
Exponential, linear, and fixed retry patterns
Scheduled Delivery
Delay message delivery until a specific time
Competing Consumers
Multiple consumers share work from the same queue
Committed Offsets
Single committed offset tracks stream position for exactly-once processing
Event Sourcing
Append-only log perfect for event sourcing and real-time analytics
Real-time Streaming
Persistent message streams with offset-based consumption and message replay
Choose Your Pattern
OKMQ provides two complementary messaging patterns. Choose the one that fits your use case, or use both together.
Queues
Task Processing & Job Management
Perfect for:
- Background job processing
- Task queues with retries
- Email and notification delivery
- Scheduled message delivery
- Load balancing across multiple workers
Key Features:
Streams
Event Sourcing & Real-time Analytics
Perfect for:
- Event sourcing and CQRS
- Real-time analytics pipelines
- Audit logs and compliance
- Data replication and synchronization
- Message replay and time-travel debugging
Key Features:
Need Both?
Many applications use both patterns together - streams for event sourcing and queues for task processing. Both share the same simple REST API and pricing model.
Why Choose OKMQ?
Advanced message queue features that solve real problems
Feature Comparison
| Feature | 🚀 OKMQ | AWS SQS | GCP Pub/Sub |
|---|---|---|---|
| 🔄 Retry Strategies | 4 Built-in Types | Basic + DLQ | Exponential Only |
| ⚡ Message Scheduling | Native Support | Delay Queues | External Required |
| 🏷️ Message Filtering | Tag-based | None | Attributes |
| 📊 Message Size | 1MB | 256KB | 10MB |
| ⏰ TTL Support | Built-in | Visibility Only | Retention Only |
| 🔗 Topic Fan-out | Built-in | Via SNS | Core Feature |
| 📊 Consumption Patterns | Both Models | Competing Only | Single Only |
Why These Features Matter
🔄 Smart Retries Save Time & Money
- Exponential: Perfect for API rate limits and temporary outages
- Linear: Ideal for resource contention scenarios
- Fixed: Predictable timing for scheduled operations
- None: Fire-and-forget for non-critical messages
Configure once per queue vs building custom retry logic
⚡ Native Scheduling Simplifies Architecture
- Schedule messages for future delivery
- No external cron jobs or schedulers needed
- Perfect for delayed notifications and reminders
- Automatic retry scheduling with backoff
One less service to manage and maintain
🏷️ Message Tags Reduce Queue Sprawl
- Filter messages within a single queue
- Organize by priority, type, or source
- Reduce the number of queues to manage
- Selective message processing
Keep your architecture simple and maintainable
💰 Transparent Pricing
- Generous free tier to get started
- No per-request charges that surprise you
- Clear storage and message limits
- Perfect for development and small projects
Predictable costs as you scale
Ready to Experience the Difference?
Start with our generous free tier and see how OKMQ's advanced features can simplify your message queue architecture.
Simple, Transparent Pricing
Choose the plan that fits your needs. All plans include our core features.
Pay for reserved capacity, not metered usage. No surprise bills at month end.
Free
Perfect for getting started
- 100 MB storage
- 100,000 messages
- 1 queue or stream
Starter
Perfect for small projects
- 1 GB storage
- Unlimited messages
- 5 queues or streams
Pro
Perfect for production applications
- 2 GB storage included
- $1/GB additional storage
- Unlimited messages
- 100 queues or streams
- Priority support
Ready to Get Started?
Join thousands of developers using OKMQ for reliable message delivery. Start free, upgrade when you need to scale.