Con las arquitecturas tradicionales de Llamada a Procedimiento Remoto (RPC), existe un desafío central: los productores y consumidores deben alinearse en escala y en tiempo. Si sus productores envían demasiados datos para que sus consumidores los manejen o si sus consumidores o servicios posteriores no están disponibles, los eventos se pierden. Este problema se agrava con múltiples consumidores que necesitan procesar los datos de forma independiente. Por ejemplo, un backend de comercio electrónico puede emitir eventos cuando se completan las transacciones, que deben ser leídos por un sistema de análisis y un servicio de detección de fraude. Podemos resolver esto desacoplando nuestros productores y consumidores: insertando un servicio en el medio que absorba las escrituras mientras permite que los lectores independientes consuman a su propio ritmo.
Hoy estamos lanzando Cloudflare K2 en beta pública para resolver este problema. K2 es un primitivo de transmisión de eventos duradero en la Plataforma para Desarrolladores. Envía eventos a una transmisión K2, que los almacena como un registro ordenado. Los consumidores pueden leerlos de varias maneras, por ejemplo, dividiendo las lecturas entre un conjunto de consumidores o entregando todos los mensajes a todos los consumidores. Es completamente sin servidor, se escala a grandes cantidades de datos y admite retención a largo plazo, por lo que incluso períodos prolongados de inactividad del consumidor no pierden datos.
Debajo del capó, K2 implementa un registro duradero y particionado sobre el almacenamiento de objetos R2, lo que le permite escalar a enormes volúmenes de almacenamiento. Si está listo para comenzar, puede crear su primer flujo en segundos siguiendo la guía aquí. Construimos K2 porque necesitábamos un búfer duradero en el borde, inicialmente para servir como capa de ingesta para Basin Pipelines. Nuestra arquitectura única significa que a menudo no podemos ejecutar software de sistemas distribuidos tradicionales como Apache Kafka, y necesitamos repensar cómo se construyen y operan estos sistemas.
Al diseñar el sistema de almacenamiento en búfer duradero que se convirtió en K2, decidimos confiar en el poderoso primitivo de estado que ya tenemos: R2. Los sistemas de almacenamiento de objetos como R2 combinan almacenamiento extremadamente duradero (¡11 nueves!) con API fuertemente consistentes. Un beneficio secundario es que separa el cómputo y el almacenamiento, lo que significa que cada uno puede escalarse de forma independiente. Esto nos permite almacenar grandes cantidades de datos históricos a bajo costo.
Fuente: Hacker News · Resumido por HeadlinesBriefing