Implement reliability patterns for Replit: cold start handling, graceful shutdown, persistent state, and keep-alive.
Use when building fault-tolerant Replit apps, handling container restarts,
or adding resilience to production Replit deployments.
Trigger with phrases like "replit reliability", "replit container restart",
"replit data persistence", "replit always on", "replit graceful shutdown".
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 reliability patterns for Replit: cold start handling, graceful shutdown, persistent state, and keep-alive.
Use when building fault-tolerant Replit apps, handling container restarts,
or adding resilience to production Replit deployments.
Trigger with phrases like "replit reliability", "replit container restart",
"replit data persistence", "replit always on", "replit graceful shutdown".
allowed-tools
Read, Write, Edit
version
1.12.0
license
MIT
author
Jeremy Longshore <jeremy@intentsolutions.io>
tags
["saas","replit","reliability","resilience"]
compatibility
Designed for Claude Code, also compatible with Codex and OpenClaw
Replit Reliability Patterns
Overview
Production reliability patterns for Replit's container-based hosting. Replit containers restart on deploy, sleep on inactivity (Autoscale), and have ephemeral filesystems. These patterns ensure your app survives container lifecycle events gracefully.
Prerequisites
Replit Deployment configured
External storage for persistent state (PostgreSQL or Object Storage)
Understanding of Replit container lifecycle
Container Lifecycle
Container starts → App boots → Handles requests → [Sleep or Restart]
│
┌────────────────────────────────────┘
│
┌───────┴──────┐
│ Sleep trigger │ Autoscale: no traffic for ~5 min
│ Restart trigger│ Deploy, config change, or crash
└───────┬──────┘
│
State lost: filesystem, in-memory data, caches
State kept: PostgreSQL, KV Database, Object Storage, Secrets
Best option: Use Replit Deployments instead
- Autoscale: scales to zero but wakes on request
- Reserved VM: always-on, no sleeping
- Both are more reliable than keep-alive hacks
Step 5: Database Connection Resilience
// Auto-reconnect on database failuresimport { Pool } from'pg';
functioncreateResilientPool(): Pool {
const pool = newPool({
connectionString: process.env.DATABASE_URL,
ssl: { rejectUnauthorized: false },
max: 5,
idleTimeoutMillis: 30000,
connectionTimeoutMillis: 5000,
});
pool.on('error', (err) => {
console.error('Pool error (will auto-reconnect):', err.message);
// Pool auto-replaces failed connections on next query
});
return pool;
}
// Retry wrapper for database queriesasyncfunctionqueryWithRetry(pool: Pool,
sql: string,
params?: any[],
retries = 3): Promise<any> {
for (let attempt = 1; attempt <= retries; attempt++) {
try {
returnawait pool.query(sql, params);
} catch (err: any) {
if (attempt === retries) throw err;
console.warn(`DB query failed (attempt ${attempt}): ${err.message}`);
awaitnewPromise(r =>setTimeout(r, 1000 * attempt));
}
}
}