Most platforms have single points of failure — if Redis crashes, the whole system goes down. IUSign is designed to degrade gracefully.
If Redis is unavailable, API keys are looked up directly from the database (slower but functional).
Idempotency checks fall back to database-based deduplication when Redis cache is down.
Rate limiting degrades to in-memory counters (per-process, not cluster-wide) when Redis is unavailable.
Email delivery switches from async queue to synchronous send with retry logic.
Telemetry collection stops gracefully — no error loops, no log spam.
Every Redis call is wrapped in a try/except with a redis_connected flag check.
API key lookup: Redis GET → fallback to SELECT * FROM api_keys WHERE hashed_key = ?
Idempotency: Redis SETNX → fallback to INSERT OR IGNORE INTO idempotency_keys.
Rate limiting: Redis INCR → fallback to in-memory collections.Counter (per-process).
SQLite is the ONLY hard dependency — without it, nothing works. Redis, SMTP, and LibreOffice are soft dependencies — the system degrades gracefully when they're unavailable.
API Key Lookup: Redis cache (5ms) → DB query (15ms). Idempotency: Redis SETNX (1ms) → DB INSERT (5ms). Rate Limiting: Redis INCR (1ms) → In-memory counter (0ms).
Create your free account and send your first document in under 3 minutes.
Get Started Free