Cloudflare K2: serverless event streams
Cloudflare K2 — это серверless-примитив для потоковой передачи событий, построенный на Developer Platform и использующий R2 как основу для долговечного, партицированного лога. Он решает проблему синхронизации производителей и потребителей в традиционных RPC-архитектурах, где несогласованность масштаба или времени приводит к потере данных. K2 буферизует события, позволяя потребителям читать их независимо и в своём темпе — будь то разделение нагрузки между несколькими воркерами или доставка всех сообщений каждому потребителю (паттерн pub/sub). Поддерживается долгосрочное хранение, так что даже длительные простои потребителей не приводят к потере данных. Поток хранит события как упорядоченный лог, сегменты которого записываются в R2 после накопления в памяти, что обходит ограничение объектного хранилища на дозапись. Архитектура разделяет вычисления и хранение, позволяя масштабировать их независимо и использовать глобальную инфраструктуру Cloudflare — близкую к пользователям и способную к горизонтальному масштабированию — несмотря на эфемерность edge-серверов и ограничения традиционных распределённых систем вроде Kafka.
K2 доступен в публичной бета-версии для аккаунтов с оплаченной подпиской Workers, с ограничениями: до 10 ГБ хранилища и 30 МБ/с производительности на поток. Во время бета-тестирования использование не тарифицируется; ожидаемая модель ценообразования после выхода: $0.04/ГБ заproduced и consumed данные, $0.02/ГБ/месяц за хранение. Планируется расширение возможностей: повышение параллелизма записи до multi-GB/s, поддержка ключевой упорядоченности, push-потребители, экспресс-уровень с низкой латентностью и совместимость с клиентами Apache Kafka. Начало работы — создание потока за секунды по официальному гайду. Обратная связь принимается в Discord Cloudflare Developers.