En el mundo de la infraestructura tecnológica, las tendencias evolucionan, pero las necesidades fundamentales permanecen constantes: reducir la latencia, disminuir el uso de CPU por solicitud y evitar sorpresas en producción. En este contexto, donde Redis, Memcached, Valkey y Dragonfly han sido nombres habituales durante años, emerge una propuesta que está captando bastante atención: Pogocache.
Pogocache es un servidor de caché escrito en C que se presenta como una solución altamente optimizada “desde cero” para ofrecer respuestas rápidas y eficiencia en el uso de CPU. Lo que lo diferencia de otras opciones tradicionales es su capacidad para comunicarse mediante múltiples protocolos de forma simultánea, incluyendo Memcache, RESP (protocolos utilizados por Valkey y Redis), HTTP y el protocolo de wire de PostgreSQL.
La propuesta de Pogocache es sencilla pero poderosa: ofrecer una única pieza de software que funcione tanto como caché consumible a través de herramientas y librerías existentes, como en modo embebido dentro de aplicaciones. Esto significa que en lugar de exponer un puerto para comunicación en red, puede compilarse en la misma aplicación, eliminando la sobrecarga del networking para operaciones críticas en rendimiento.
Desde un punto de vista técnico, Pogocache se ha diseñado con componentes clave para maximizar la eficiencia: un hashmap shardeado para distribuir la carga, robin hood hashing para reducir las colisiones, bloqueos ligeros por shard, y un modelo multihilo con colas de eventos que aprovechan tecnologías como epoll, kqueue y io_uring en Linux cuando están disponibles. Todo esto con el objetivo de que operaciones básicas como SET, GET y DEL sean rápidas en CPU y con latencias estables, incluso a gran escala.
En términos de rendimiento, los benchmarks realizados en condiciones controladas muestran que Pogocache puede alcanzar aproximadamente 3,08 millones de QPS en un entorno AWS c8g.8xlarge con 8 hilos. Frente a alternativas como Memcached, Redis o Dragonfly, presenta números superiores en ese escenario. Sin embargo, es importante precisar que los resultados dependen de múltiples factores, incluyendo hardware, tamaño de las claves y valores, y configuración del entorno. El benchmark se realizó con metodologías transparentes, usando herramientas como memtier_benchmark, conexiones locales, sin persistencia, y con mediciones detalladas de latencia y CPU.
Para instalar Pogocache, las opciones más sencillas son compilar desde el código fuente en Linux o macOS usando git y make, o bien usar una imagen Docker, que permite probar rápidamente sin modificar la máquina. Una vez instalado, puede levantarse en localhost en el puerto 9401 por defecto, pero también ajustarse para escuchar en otras IPs o integrar autenticación y TLS.
Su uso es versátil: puede interactuarse mediante comandos HTTP con curl, con clientes RESP como valkey-cli o redis-cli, o incluso en modo “PostgreSQL” usando psql, lo que abre una puerta interesante para integración con entornos donde ya existe tooling para bases de datos.
¿Para quién es recomendable Pogocache? Principalmente para aquellos proyectos donde la velocidad máxima en operaciones simples (GET/SET/DEL) marca la diferencia, y donde se busca sustituir o complementar Redis/Memcached sin alterar demasiado el ecosistema de clientes. También es especialmente útil en escenarios donde la opción embebida es preferible para eliminar la latencia de red.
Por otro lado, no es la elección ideal si se requiere un ecosistema muy extenso de módulos, scripts o características avanzadas de Redis, o si la alta disponibilidad y distribución nativa son prioridades sin una capa de gestión adicional. Aunque en su roadmap hay planes para ampliar esas capacidades, actualmente su fuerte es la velocidad y la simplicidad operativa por nodo.
En resumen, Pogocache destaca como una alternativa ligera, eficiente y versátil para mejorar el rendimiento en casos críticos de caching, especialmente en entornos donde la latencia y el uso de CPU deben optimizarse al máximo. Su compatibilidad con protocolos universales y su modo embebido la convierten en una opción que merece ser considerada en la arquitectura de sistemas de alto rendimiento.
