v0.9.0 — Private Beta
Quickstart
Ship your first background job in under 15 minutes.
1 Install the SDK
Install the RELAY SDK via your package manager:
Terminal
$ npm install @relay/sdk
The SDK is fully typed. No additional @types packages needed.
2 Initialize RELAY
Create a RELAY client with your API key. Generate one from the dashboard.
relay.ts
import Relay from "@relay/sdk"; export const relay = new Relay( apiKey: process.env.RELAY_API_KEY, );
Keep your API key secret
Never hardcode API keys. Use environment variables and .env files. See our secrets management guide.
3 Define your first job
Use relay.defineJob() to create a typed job handler. The payload type flows from enqueue to handler with full TypeScript inference.
jobs/send-welcome-email.ts
import relay from "../relay"; interface WelcomeEmailPayload userId: string; email: string; firstName: string; export const sendWelcomeEmail = relay.defineJob<WelcomeEmailPayload>( id: "send-welcome-email", queue: "notifications", retries: 3, async handler(payload) // payload is fully typed — no casting needed await mailer.send( to: payload.email, template: "welcome", data: firstName: payload.firstName , ); , );
4 Enqueue a job
Call .enqueue() from anywhere — your API route, webhook handler, or another job.
api/auth/signup.ts
import sendWelcomeEmail from "../jobs/send-welcome-email"; export async function POST(request: Request) const user = await db.createUser(await request.json()); // Enqueue asynchronously — don't block the response await sendWelcomeEmail.enqueue( userId: user.id, email: user.email, firstName: user.firstName, ); return Response.json( user , status: 201 );
You're done!
Open the RELAY dashboard to see your job execute in real time. The "notifications" queue should show your job within 2 seconds of enqueueing.