resilience-engineering

Installation
SKILL.md

Resilience Engineering for Shopify Apps

Shopify's API limit is a "Leaky Bucket". If you pour too much too fast, it overflows (429 Too Many Requests). Your app must handle this gracefully.

1. Handling Rate Limits (429)

The "Retry-After" Header

When Shopify returns a 429, they include a Retry-After header (seconds to wait).

Implementation (using bottleneck or custom delay):

async function fetchWithRetry(url, options, retries = 3) {
  try {
    const res = await fetch(url, options);
    if (res.status === 429) {
      const wait = parseFloat(res.headers.get("Retry-After") || "1.0");
      if (retries > 0) {
        await new Promise(r => setTimeout(r, wait * 1000));
        return fetchWithRetry(url, options, retries - 1);
Related skills

More from toilahuongg/shopify-agents-kit

Installs
6
GitHub Stars
9
First Seen
Mar 3, 2026