| name | canva-reliability-patterns |
| description | Implement reliability patterns for Canva Connect API — circuit breakers, idempotency, graceful degradation.
Use when building fault-tolerant Canva integrations, implementing retry strategies,
or adding resilience to production Canva services.
Trigger with phrases like "canva reliability", "canva circuit breaker",
"canva resilience", "canva fallback", "canva fault tolerance".
|
| allowed-tools | Read, Write, Edit |
| version | 1.5.0 |
| license | MIT |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| tags | ["saas","design","canva"] |
| compatibility | Designed for Claude Code |
Canva Reliability Patterns
Overview
Production-grade reliability patterns for the Canva Connect API. The API has async operations (exports, uploads, autofills) that can fail or timeout, OAuth tokens that expire every 4 hours, and rate limits that require backoff.
Circuit Breaker
import CircuitBreaker from 'opossum';
const canvaBreaker = new CircuitBreaker(
async (fn: () => Promise<any>) => fn(),
{
timeout: 30000,
errorThresholdPercentage: 50,
resetTimeout: 60000,
volumeThreshold: 5,
}
);
canvaBreaker.on('open', () => {
console.warn('[canva] Circuit OPEN — Canva API unreachable, failing fast');
});
canvaBreaker.on('halfOpen', () => {
console.info('[canva] Circuit HALF-OPEN — testing Canva recovery');
});
canvaBreaker.on('close', () => {
console.info('[canva] Circuit CLOSED — Canva API recovered');
});
() {
canvaBreaker.( () => {
(, token, {
: ,
: .(body),
});
});
}