CacheBolt: un proxy inverso ultrarrápido en Rust que simplifica la caché para APIs y microservicios — sin Redis

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:

  1. Busca en caché RAM: si el contenido está, lo sirve inmediatamente.
  2. Si no está en RAM, busca en almacenamiento persistente: si encuentra la respuesta, la sube a RAM y la sirve.
  3. Si no está en ningún caché, consulta al backend: guarda la respuesta en ambos cachés si es válida.
  4. 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é.

Suscríbete al boletín SysAdmin

Este es tu recurso para las últimas noticias y consejos sobre administración de sistemas, Linux, Windows, cloud computing, seguridad de la nube, etc. Lo enviamos 2 días a la semana.

¡Apúntate a nuestro newsletter!


– patrocinadores –

Noticias destacadas

– patrocinadores –

¡SUSCRÍBETE AL BOLETÍN
DE LOS SYSADMINS!

Scroll al inicio
×