Financial Integrity
Write-Ahead Log Financial
Nunca Pierdas Dinero
Inspirado en bases de datos ACID. Antes de procesar cualquier respuesta, escribimos la intención de cobro en Redis. Si el servidor explota, al reiniciar recuperamos todas las transacciones pendientes.
1. Chat Request
El usuario envía una petición al API.
2. Redis WAL Write ⚡
Punto Crítico: Se registra la transacción en memoria RAM persistente antes de gastar saldo.
3. LLM Execution
Se llama a OpenAI/Anthropic y se genera la respuesta.
4. Supabase Persist
Se guarda el registro permanente en PostgreSQL.
¿Qué pasa si hay un Crash?
Si el servidor muere entre el paso 2 y 4, el Worker de recuperación detectará la entrada WAL huérfana al reiniciar y completará el cargo automáticamente.
recovery.py
# recovery.py - Al arrancar el sistema
async def recover_pending_charges():
# Buscar transacciones pendientes en memoria
pending = await redis.keys("wal:charge:*")
for key in pending:
# Recuperar datos del Write-Ahead Log
charge = await redis.get(key)
# Persistir en base de datos definitiva
await supabase.insert("charges", charge)
# Limpiar WAL una vez seguro
await redis.delete(key)
logger.info(f"Recovered {len(pending)} charges")
python