Agent skill · software engineering · jeremylongshore
canva-reliability-patterns
Implement Canva reliability controls for transport failures, asynchronous jobs, token rotation, throttling, and dead letters. Use when preventing duplicate writes or recovering safely across timeouts and restarts. Trigger with: "Canva retries", "Canva circuit breaker", "recover Canva job".
Why this skill is useful
Adds executable scripts for implementing reliability patterns specific to the Canva Connect API, enhancing fault tolerance and resilience.
What it needs
Requires opossum installed locally. Requires canva account access. About 2k tokens when loaded. Last updated 2026-08-07. 2,604 stars on the source repository.
What this skill does
Canva Reconciliation and Recovery Overview Reliability begins with knowing whether an operation happened. Reconcile existing resources and jobs before replaying a mutation, and keep credential rotation outside generic request retries. Prerequisites Operation types, retry classifications, and duplicate impact Durable identity/job ledger and terminal-state contract Endpoint/user queues, time budgets, alert owner, and rollback Instructions Step 1: Classify operations Use Read and Grep to label safe read, token exchange, mutating submission, job poll, webhook delivery, and cleanup. Define retriable errors per operation. Step 2: Persist before dispatch Create one application operation record with tenant/resource authorization and intended effect before sending a mutating request. Step 3: Handle ambiguous failure After timeout or connection loss, use returned or recoverable identity to query existing state. Never blindly recreate a design, export, upload, or autofill. Step 4: Poll bounded jobs Apply exponential backoff with jitter to the same job, stop at local deadline, continue later from durable state, and handle success/failed plus unknown future states safely. Step 5: Serialize credential refresh Single-flight by Canva user, atomically store the returned replacement refresh token, wake waiting requests on success, and reauthorize rather than looping invalid credentials. Step 6: Use scoped circuits and dead letters Open by endpoint/failure class, preserve operations with reconciliation state, and require an owner before replay. Do not mix authorization failures with provider availability. Step 7: Prove recovery Use Write or Edit to test restart, duplicate delivery, lost response, throttling, terminal failure, refresh race, circuit recovery, and dead-letter replay. Authentication Canva Connect calls use Bearer access tokens obtained by a backend through OAuth 2.0 Authorization Code with SHA-256 PKCE. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills jeremylongshore/canva-reliability-patterns