Cloudflare ha presentado un nuevo producto de transmisión de eventos sin servidor llamado K2, y la empresa reconoce que su propia infraestructura resultó ser demasiado inusual para software estándar listo para usar, como Apache Kafka.
El anuncio de Micah Wylde y Marc Selwan establece que Cloudflare requería un búfer duradero en el borde para su proyecto Basin Pipelines. Pipelines funciona como un motor de procesamiento de flujos construido sobre un diseño basado en la extracción, lo que significa que otro sistema debe mantener los eventos hasta que sean leídos, alterados y luego colocados en R2. La empresa promete que nunca descartará eventos una vez que sean aceptados en el Flujo de Pipelines, ese almacenamiento debe ser duradero — no puede serlo, incluso a través de períodos prolongados de tiempo.
La mayoría de las empresas recurren a Apache Kafka cuando necesitan ese tipo de configuración. Cloudflare, sin embargo, se encuentra en el borde, distribuido a través de una gran cantidad de máquinas en más de 335 ciudades. Debido a su diseño, a menudo no puede usar sistemas de software distribuidos convencionales como Kafka, y en cambio debe rediseñar cómo se ensamblan y mantienen estos sistemas.
Construyendo un Registro en R2
En lugar de construir una nueva base de datos distribuida desde cero, Cloudflare eligió depender del primitivo de estado que ya poseía: R2, su sistema de almacenamiento de objetos. Este tipo de almacenamiento combina un almacenamiento extremadamente duradero (¡11 9s!) con APIs con una fuerte consistencia. Al mover la replicación y el consenso a la capa de almacenamiento, la capa de aplicación — K2 en este caso — se simplifica radicalmente, se abarata y se mejora el rendimiento. También separa la computación y el almacenamiento, permitiendo que cada uno se escale de forma independiente.
R2 carece de soporte para anexiones, que normalmente se usarían en un registro. K2 maneja esto recopilando escrituras en la memoria en un servicio de borde, esperando un breve intervalo para que los datos aparezcan y luego escribiendo todos los eventos como un archivo de segmento a la vez. El orden y los desplazamientos estrictamente crecientes provienen de las operaciones atómicas de R2, eliminando la necesidad de un servicio de coordinación separado.
Colas, Flujos y Pipelines
Cloudflare actualmente provee Queues y Basin Pipelines. Queues se enfoca en mantener un registro de elementos individuales de trabajo costoso o que consume mucho tiempo y que requieren finalización asíncrona. Manejan lógica compleja en cada elemento de trabajo, con reintentos, retrasos y colas de cartas muertas para intentos fallidos incluidos entre las características.
El diseño de K2 se enfoca en el movimiento de datos a gran escala, la retención a largo plazo y el consumo en abanico. Maneja mensajes por lotes cuando son producidos y consumidos, una característica que permite un procesamiento eficiente pero sacrifica los reintentos a nivel de mensaje en el proceso. Este enfoque de procesamiento por lotes es lo que causa una latencia de productor más alta en comparación con las colas.
Cuando la salida final llega al almacenamiento de objetos o a las tablas de Iceberg, la compañía apunta a Pipelines. Para procesamiento personalizado o cualquier otro destino, la recomendación cambia a K2.
Lo que la Latencia Cuesta
El principal inconveniente de R2 es la latencia de producción aumentada. Debido a que escribir en el almacenamiento de objetos toma más tiempo que usar un disco local, K2 debe esperar hasta que el lote local se acumule antes de poder comenzar la escritura. Al momento del lanzamiento, esto produce aproximadamente 1 segundo de latencia de producción en el percentil 99 de los tiempos de respuesta.
Una inmersión técnica próxima de Cloudflare revelará detalles más específicos sobre cómo está diseñado K2.
Empezando
La versión beta pública de K2 ya está disponible, y puede configurar su primera transmisión en segundos utilizando la guía. Hay varias formas de construir flujos: cf, Wrangler, el panel o otras herramientas.
| Primitivo | Propósito |
|---|---|
| Colas | Realizar un seguimiento de elementos individuales de trabajo costoso o que consume mucho tiempo |
| K2 Streams | Movimiento de datos de alta escala, retención a largo plazo y consumo distribuido |
| Basin Pipelines | Ingesta sin servidor para transformar y escribir eventos en tablas R2 o Iceberg |
K2 nació de la propia arquitectura de Cloudflare, que hacía inviable la construcción de sistemas distribuidos convencionales. El anuncio describe el resultado: un primitivo de transmisión de eventos duradero que se basa en el almacenamiento duradero de R2.
Fuente: “Cloudflare K2: flujos de eventos sin servidor,” cloudflare.com.
Recibe El Cuaderno.
Las mejores historias del día y cada veredicto nuevo, en español claro, en tu correo a las siete. Un correo al día, nada más.

