Implement Salesforce reliability patterns including circuit breakers, idempotent upserts, and fallback caching.
Use when building fault-tolerant Salesforce integrations, implementing retry strategies,
or adding resilience to production Salesforce services.
Trigger with phrases like "salesforce reliability", "salesforce circuit breaker",
"salesforce idempotent", "salesforce resilience", "salesforce fallback", "salesforce retry".
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Une commande directe contourne le prompt de vérification. Examinez la source avant de l'exécuter.
Implement Salesforce reliability patterns including circuit breakers, idempotent upserts, and fallback caching.
Use when building fault-tolerant Salesforce integrations, implementing retry strategies,
or adding resilience to production Salesforce services.
Trigger with phrases like "salesforce reliability", "salesforce circuit breaker",
"salesforce idempotent", "salesforce resilience", "salesforce fallback", "salesforce retry".
allowed-tools
Read, Write, Edit
version
1.7.0
license
MIT
author
Jeremy Longshore <jeremy@intentsolutions.io>
tags
["saas","crm","salesforce"]
compatibility
Designed for Claude Code
Salesforce Reliability Patterns
Overview
Production-grade reliability patterns for Salesforce integrations: circuit breakers for API outages, idempotent operations using External IDs, graceful degradation with cached data, and dead letter queues for failed operations.
Prerequisites
jsforce connection configured
Understanding of Salesforce error codes (see salesforce-common-errors)
Redis or database for state management (optional)
opossum or similar circuit breaker library
Instructions
Step 1: Circuit Breaker for Salesforce API
importCircuitBreakerfrom'opossum';
import { getConnection } from'./salesforce/connection';
// Circuit breaker wraps all Salesforce callsconst sfBreaker = newCircuitBreaker(
async (fn: () =>Promise<any>) => fn(),
{
timeout: 30000, // SF calls can be slow — 30s timeouterrorThresholdPercentage: 50, // Open circuit at 50% error rateresetTimeout: 60000, // Try again after 1 minutevolumeThreshold: 10, // Need 10 calls before evaluatingerrorFilter: (error: any) => {
// Don't count client errors as circuit-breaking failuresconst nonCircuitErrors = [, , ];
nonCircuitErrors.(error.);
},
}
);
sfBreaker.(, {
.();
});
sfBreaker.(, {
.();
});
sfBreaker.(, {
.();
});
safeSfQuery<T>(: ): <T[]> {
sfBreaker.( () => {
conn = ();
result = conn.<T>(soql);
result.;
});
}
'INVALID_FIELD'
'MALFORMED_QUERY'
'REQUIRED_FIELD_MISSING'
return
includes
errorCode
on
'open'
() =>
console
error
'CIRCUIT OPEN: Salesforce API failing — requests will fail fast'