Queues, events, caching, and search in one service

Give your app queues, event delivery, durable pipelines, broadcast, scheduled tasks, managed Redis, and full-text search through one Conjoin API. Conjoin operates the workers, brokers, and clusters behind every module, so your team writes only the code that handles each task.

One service for background jobs, event delivery, and durable workflows

You can use each Relay module on its own through the same Conjoin client and API key. Inside a Relay pipeline, Conjoin can also call Queues, Events, Broadcast, MemoryStore, and Scheduler for you as steps in a workflow.

Schedule manifests and queue dispatches

Agent is ready

Queue, publish, schedule, cache, and search from one API

Durable pipelines

Conjoin saves the state of a multi-step workflow after every step and resumes a failed run from the last completed step. The built-in step types include branching, approval gates, delays, and actions in other Relay modules.

Callback-based tasks

Relay delivers each task as an HTTP request with its payload to the endpoint that you name, so any server or serverless function that accepts HTTPS requests can process it.

Queue management

Group tasks into queues, and give each queue its own priority level, rate limit, and concurrency cap. You can also delay a single task by passing a delay in milliseconds when you enqueue it.

Event subscriptions

When you publish an event to a channel, Relay delivers a copy to each subscription whose filter matches it and retries a failed delivery under the policy of that subscription.

Broadcast channels

Relay pushes each event that you publish on a channel to its connected clients in under 50ms, over a WebSocket connection that clients can also use to send messages back to your server.

Presence tracking

Relay records which users are connected to each channel and notifies your clients when someone joins or leaves.

MemoryStore

MemoryStore gives you a managed Redis cluster for caching, sessions, and real-time data, with automatic failover to a replica when the primary node fails.

Scheduled tasks

Scheduler calls your endpoint on a cron schedule or once at a timestamp that you set, in the timezone that you choose.

Full-text search

Search indexes the documents that you push and returns results ranked by relevance, along with type-ahead suggestions from the same index.

Delivery guarantees

Relay retries a failed delivery on a backoff that you configure. After the last retry, Relay moves the task or event to a dead-letter queue, where you can read the error and replay it.

Relay-native orchestration

In a Relay-native pipeline step, Conjoin enqueues a task, publishes an event, broadcasts a message, caches a value, or creates a schedule, so your endpoint calls none of those modules itself.

Approval gates

At a gate step, Conjoin pauses the run for human review and, if the timeout that you configure passes first, approves or rejects the step automatically.

< 100ms
Dequeue latency

Time from enqueue to task pickup

7 days
Event retention

Window for replaying events to a subscriber

500K+
Messages per second

Per-queue throughput capacity

Build faster with solutions designed for real-world needs

Enqueue long tasks and answer your user right away

When your API enqueues a task with the endpoint URL and payload, it can respond to the user as soon as the enqueue call returns. Relay then calls that endpoint in a separate request, under the timeout and retry limit that you set on the task.

Impact

The sample allows the Lambent Sound transcode endpoint five tries of up to 10 minutes each to produce the HLS, DASH, and FLAC files for one master recording. Your upload handler can respond as soon as enqueueTask resolves, while Relay makes the transcode calls in the background.

Prompt for a coding agent: Transcode each uploaded master in the background, and answer the upload request right away.

Conjoin IDE

Select a file to view its contents

Process bulk work within the rate limit of a downstream API

Relay delivers the tasks in a queue no faster than the rate limit that you set on it, however many tasks you enqueue. When you enqueue 10,000 tasks against a limit of 100 per minute, Relay spreads their delivery across 100 minutes.

Impact

The sample sets the Karst Marketplace listings sync to 100 deliveries per minute and 10 concurrent calls, with up to four tries for each task before Relay moves it to the dead-letter queue. Relay paces the calls, so your code contains no throttling logic.

Prompt for a coding agent: Sync the listings at no more than 100 calls per minute, and retry each call up to four times.

Conjoin IDE

Select a file to view its contents

Relay calls your endpoint on a cron schedule

Scheduler calls the target URL of a schedule at each time that its cron expression matches, in the timezone that you set. You can change the cron expression or pause the schedule through the API with no redeploy.

Impact

With the sample definition, Scheduler calls the Helix Markets end-of-day report endpoint at 17:00 New York time every weekday, across daylight saving changes, so you maintain no server or crontab for that report.

Prompt for a coding agent: Call the end-of-day report endpoint at 17:00 New York time every weekday.

Conjoin IDE

Select a file to view its contents

Fulfill an order in steps that Conjoin resumes after a failure

Describe each stage of the order as a step that your endpoint returns. Conjoin records the output of every step, so after a crash or a redeploy partway through the order, Conjoin repeats only the interrupted step. Within the same run, Conjoin can pause at a gate step for an approval or execute the branches of a fork step in parallel.

Impact

The sample starts the fulfillment run for the $1,845.00 Marrow & Vine order under an idempotency key built from the order ID, so a retried trigger call for that order returns the run that already exists. From then on, Conjoin stores the progress of the order across restarts and approval waits, so your code tracks no workflow state of its own.

Prompt for a coding agent: Fulfill each order in steps that survive a restart, and start each order only once.

Conjoin IDE

Select a file to view its contents

Common questions about Conjoin Relay

Build your next app on Conjoin

Conjoin will open with a free Build tier, while the pricing page already lists the launch prices for Pro and Business. If you tell us what you're building, we'll talk you through early access.