CacheBolt es un nuevo proyecto open source que está captando la atención en la comunidad de desarrolladores por su propuesta: un proxy inverso escrito en Rust que ofrece caché inteligente tanto en memoria RAM como en almacenamiento persistente en la nube o en disco local, sin depender de Redis ni de bases de datos adicionales. La solución es especialmente atractiva para entornos de APIs, microservicios y cargas web que buscan acelerar la entrega de contenido, ganar resiliencia y minimizar la complejidad operativa.
¿Qué ofrece CacheBolt?
- Caché en memoria RAM: respuestas HTTP cacheables se guardan en memoria con políticas de recambio LRU (Least Recently Used), evitando sobrecargas y liberando espacio de forma automática si se acerca al límite de memoria.
- Caché persistente en almacenamiento de objetos: además de RAM, los datos pueden guardarse en almacenamiento frío como Amazon S3, Google Cloud Storage, Azure Blob Storage o disco local. Así, el caché sobrevive a reinicios y puede compartirse entre instancias, facilitando la escalabilidad en Kubernetes u otros entornos cloud.
- Restauración tras fallos: si el proxy se reinicia, puede reconstruir el caché RAM a partir del almacenamiento persistente.
- Sin necesidad de Redis ni middleware complejo: CacheBolt funciona como una capa transparente delante del backend, sin cambios en la aplicación.
- Políticas TTL y tolerancia a latencia: configurable para servir desde caché si el backend es lento o está caído, mejorando la experiencia de usuario y la resiliencia ante incidencias.
- Evicción LRU inteligente: a diferencia de Redis, CacheBolt libera espacio de RAM proactivamente antes de llegar a OOM (Out Of Memory).
- Métricas Prometheus: todo el sistema es monitorizable en tiempo real.
- Configuración por YAML: fácil de adaptar y desplegar en cualquier entorno.
- Open source (Apache 2.0): libre uso y contribución comunitaria.
¿Cómo funciona?
CacheBolt actúa como proxy inverso entre el cliente y el backend. Cuando recibe una petición:
- Busca en caché RAM: si el contenido está, lo sirve inmediatamente.
- Si no está en RAM, busca en almacenamiento persistente: si encuentra la respuesta, la sube a RAM y la sirve.
- Si no está en ningún caché, consulta al backend: guarda la respuesta en ambos cachés si es válida.
- Si el backend tarda más de lo tolerable (según reglas configuradas), puede servir desde caché aunque haya datos antiguos.
Este enfoque combina lo mejor de la velocidad de RAM con la persistencia y durabilidad de la nube.
Casos de uso
- APIs REST y GraphQL con mucha concurrencia o alta variabilidad de tráfico.
- Entrega de archivos o imágenes con almacenamiento en S3, GCS o Azure.
- Microservicios en Kubernetes: varias réplicas pueden compartir caché persistente.
- Fallback ante caídas: sigue sirviendo respuestas aunque el backend o la infraestructura fallen.
- Aceleración de aplicaciones sin modificar el código fuente.
Monitorización avanzada
CacheBolt publica métricas Prometheus para monitorear:
- Tasa de aciertos y fallos de caché.
- Latencias.
- Uso de RAM y almacenamiento persistente.
- Fallos de backend, rechazos por concurrencia, y mucho más.
Ejemplo de configuración en YAML
app_id: mi-servicio
max_concurrent_requests: 200
downstream_base_url: http://localhost:4000
downstream_timeout_secs: 5
storage_backend: s3 # O: gcs, azure, local
s3_bucket: mi-bucket-cache
memory_eviction:
threshold_percent: 90
latency_failover:
default_max_latency_ms: 300
path_rules:
- pattern: "^/api/v1/productos/.*"
max_latency_ms: 150
Lenguaje del código: HTTP (http)
Ejecución y despliegue
- Binario:
./cachebolt --config ./config.yaml
- Docker:
docker run --rm -p 3000:3000 \ -v $(pwd)/config:/config \ -v $(pwd)/cache:/data \ -e GOOGLE_APPLICATION_CREDENTIALS=/config/adc.json \ ghcr.io/<tu-org>/cachebolt:latest \ --config /config/config.yaml
- Integración fácil con AWS, Azure, GCP, o almacenamiento local.
Limpieza global de caché
¿Necesitas invalidar todo el caché (RAM y nube)? Solo haz:
curl -X DELETE "http://localhost:3000/cache?backend=true"
Lenguaje del código: JavaScript (javascript)
CacheBolt es una opción moderna, sencilla y de alto rendimiento para añadir caché persistente y tolerante a fallos a tus APIs o aplicaciones web. Olvida la dependencia exclusiva de Redis y el middleware complejo: con esta herramienta solo necesitas desplegar el proxy, configurarlo y dejar que haga el resto.
El proyecto está disponible en GitHub bajo licencia Apache 2.0:
👉 msalinas92/CacheBolt
Ideal para desarrolladores y equipos DevOps que buscan rendimiento y simplicidad en la capa de caché.