Skip to main content

What is Orqestra?

The problem

Every application eventually needs to send notifications. A welcome email when someone signs up. An SMS when a payment fails. A real-time alert when a background job finishes.

Most teams handle this by writing it themselves: a SendGrid call here, a Twilio snippet there, a Firebase SDK wrapper somewhere else. After a few months you have notification logic scattered across services, each team managing their own credentials, each integration breaking in its own way when something goes wrong.

It works — until it doesn't. And when it breaks, you have no visibility into what happened.

The solution

Orqestra is a notification service you deploy once and use from every service in your stack.

Instead of integrating directly with email or SMS providers, your services fire a single HTTP event:

POST /api/v1/events/trigger
x-api-key: your-api-key

{
"eventType": "payment.failed",
"payload": {
"userId": "user_12345",
"recipientEmail": "alice@example.com"
},
"variables": {
"amount": 49.99,
"cardLast4": "4242"
}
}

payload tells Orqestra who to notify. variables holds the data your template will render — the keys map directly to Handlebars expressions like {{amount}} in your template content.

Orqestra finds the right template for that event, renders it, and delivers it — over email, SMS, push, or all three simultaneously. Your service doesn't know or care which provider was used.

How it works

flowchart LR
A[Your service] -->|POST event| B[Orqestra API]
B --> C{Match template}
C -->|Email template| D[Email provider]
C -->|SMS template| E[SMS provider]
C -->|Push template| F[Real-time push]
D --> G[Recipient ✓]
E --> G
F --> G

Three steps:

  1. Trigger an event — your service sends one HTTP call with a JSON payload.
  2. Templates render automatically — Orqestra finds the template that matches your event type and fills in the variables from your variables object.
  3. Notifications are delivered — the rendered content is dispatched to the configured channel (email, SMS, or in-app push).

If delivery fails, Orqestra retries automatically. If it fails permanently, the notification lands in the Recovery Queue so you can investigate and replay it — nothing disappears silently.

Who it's for

  • Product teams who want to own their notification content without asking engineering to change code every time.
  • Platform teams building shared infrastructure for multiple internal services or tenants.
  • SaaS builders who need strict data isolation between their own customers.

Key concepts

TermWhat it means
TenantA team or application with its own API key, templates, and provider settings
EventA signal your app fires when something happens (order.confirmed, user.signup)
TemplateA reusable message layout linked to an event type
ProviderThe service that delivers the message (Resend, SendGrid, Twilio)
ChannelThe delivery method — Email, SMS, or Push

See Concepts for full plain-language definitions with examples.

Next steps

  • Quickstart → — Fire your first notification in 5 minutes using the sandbox.
  • Concepts → — Understand tenants, providers, templates, and events.
  • Architecture → — How the components fit together under the hood.