Priority
Send through the preferred provider. Fall back only on failure or saturation.
Pick a strategy, score providers, branch on tenant tier, fail over when a vendor goes down, retry with backoff. All configured in the admin, never coded into your applications.
API
/notifications
Kafka
events.notif
Webhook
ingest
Twilio
412ms
SendGrid
298ms
FCM
1.2s
Slack
190ms
The strategy is per-channel, per-tenant. Change it in the admin and the next event picks up the new rule. No redeploy, no migration, no application restart.
Send through the preferred provider. Fall back only on failure or saturation.
Even rotation across N providers when no preference applies.
Geo-aware per locale. Route MA traffic through INWI / MGate, EU through Twilio.
Premium tenants get the low-latency provider pool; standard tenants get the cost-optimised one.
acme-prodTwilio
SMS · low-latency
MGate
SMS · regional fallback
Vonage
SMS · cost-optimised
Primary, secondary, tertiary, all per channel and per tenant. Health probes pull an unhealthy provider out of rotation before the next event picks it. When the primary recovers, traffic shifts back without an operator step.
Exponential backoff with jitter, capped at a per-channel ceiling. A flapping provider gets fewer attempts as the gap grows, so one bad vendor never takes the whole pipeline down with it.
order-eventstenant.tier == 'premium' AND channel == 'sms'Matched→ strategy: priority · pool: low-latency
payload.region IN ('MA','TN','DZ')→ strategy: region · pool: MA-providers
*→ strategy: round-robin · pool: default
Tenant tier, channel, payload fields, time of day. Branches are first-match. Order them in the admin once and the audit trail explains every routing decision back to the rule that won.
For every event, the audit trail records the strategy that ran, the rule that matched, the provider chosen, and the outcome. When someone asks “why did this notification go that way?”, you point at a row.
ORDER_SHIPPED· acme-prod
→ Twiliovia priority
PASSWORD_RESET· atlas
→ SendGridvia rule#1
ORDER_DELAYED· northwind
→ MGate (fallback)via failover
OTP_REQUEST· acme-prod
→ Twiliovia priority
MARKETING_BLAST· northwind
→ Mailgunvia round-robin
More platform features