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".
Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.
Quelldateien prüfen
Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
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));
}
}
}