Cloudflare перевёл свою платформу данных в статус generally availableобщедоступный статус продукта, при котором он считается готовым к использованию в продакшене и дал ей новое имя — Cloudflare Basin. Одновременно анонсированы два новых примитива: durable event streamingпотоковая передача событий с гарантированным долговременным хранением K2 в публичной бете и новый режим Workers KV под названием Instant в приватной бете. В Workers добавлена поддержка пост-квантовых алгоритмов через Web Crypto за флагом совместимости.
Что именно изменилось
Cloudflare Basin — открытая serverlessмодель выполнения, при которой инфраструктуру и масштабирование берёт на себя провайдер, а разработчик платит только за фактическое использование-платформа данных, ранее называвшаяся Cloudflare Data Platform. В неё входят три продукта, каждый из которых тоже переименован:
- Basin Pipelines (ранее Cloudflare Pipelines) принимает события из Workers, HTTP или Cloudflare Logpush, преобразует их с помощью SQL и записывает как таблицы Apache Icebergоткрытый табличный формат для аналитических данных в объектном хранилище, который хранит метаданные отдельно от самих файлов или файлы в R2.
- Basin Catalog (ранее R2 Data Catalog) управляет метаданными Iceberg и автоматически поддерживает таблицы.
- Basin SQL (ранее R2 SQL) — serverless распределённый SQL-движок для запросов к таблицам Apache Iceberg напрямую на Cloudflare.
Cloudflare K2 запущен в публичной бете как durable event streaming primitive: события пишутся в поток, который хранит их как упорядоченный лог, а потребители читают их разными способами. Workers KV Instant запущен в приватной бете. AI Search стал общедоступным, тарификация начнётся 1 ноября 2026 года. Artifacts находится в открытой бете.
В Workers начальная реализация поддерживает ML-KEM-768 как KEMмеханизм инкапсуляции ключа, при котором одна сторона формирует общий секрет и передаёт его зашифрованным и ML-DSA-44 как алгоритм подписи. Для включения требуется флаг webcrypto_modern_algorithms.
Как работает Basin
События сначала принимаются, приводятся к схеме и записываются в объектное хранилище. Этим занимаются Basin Pipelines: они принимают события через HTTP-эндпоинты или привязки Workers, обрабатывают их согласно SQL-запросу и доставляют в Basin Catalog как таблицы Apache Iceberg либо в R2 как JSON- или Parquet-файлы.
Запись через INSERT INTO выполняется как часть SQL-обработки в Pipeline. Запрос вставляет результат выборки из потока в приёмник, выбирая нужные поля, преобразуя временные метки и хешируя IP-адреса:
INSERT INTO http_logs_sink
SELECT EdgeResponseStatus,
to_timestamp_micros(EdgeStartTimestamp) AS event_time,
upper(ClientRequestMethod) AS method,
sha256(ClientIP) AS hashed_ip
FROM http_logs_stream
WHERE EdgeResponseStatus >= 400;Обработка во время приёма уменьшает объём хранения, снижает шум от динамических источников и помогает не записывать чувствительные или ненужные значения.
Basin Catalog — полностью управляемый REST-каталог Apache Iceberg, который автоматически выполняет рутинное обслуживание таблиц. Создаётся командой npx wrangler basin catalog create CATALOG_NAME. Basin SQL — бессерверный распределённый движок запросов для таблиц Apache Iceberg, хранящихся в Basin Catalog; он автоматически масштабируется в глобальной сети Cloudflare без выделения кластеров или ресурсов.
Как работает K2
Стрим создаётся командой cf k2 streams create --name app_events --http-enabled. Продюсеры отправляют данные через HTTP API или Worker binding: например, привязка Workers принимает массив записей с content и headers, а результат сообщает, удалась ли отправка и можно ли повторить попытку при ошибке.
Потребитель запрашивает у потока следующую порцию событий и получает батч записей. На этот батч выдаётся leaseвременное право на обработку батча, в течение которого он не будет доставлен другому потребителю на 5 минут. В течение этого времени клиент может сделать одно из трёх:
- ack — пометить батч обработанным и не доставлять повторно;
- nack — сообщить, что обработка не удалась, и запросить повторную доставку;
- extend — продлить lease, если нужно больше времени на обработку.
Как работает Workers KV Instant
KV Instant — это новый режим Workers KV, использующий тот же API, что и классический режим Workers KVрежим Workers KV по умолчанию, в котором изменения распространяются с задержкой и возможны холодные чтения. При создании namespaceизолированное пространство имён для хранения пар ключ-значение нужно указать режим, передав атрибут "mode": "instant".
Три ключевых отличия от классического режима:
- metadata не поддерживается: при чтении вместе со значением сопутствующие ему метаданные не возвращаются, и при записи их передать нельзя;
- перечисление ключей возвращает все подходящие ключи в namespace без пагинации;
- запись ограничена одной операцией в секунду на namespace, тогда как классический Workers KV ограничивает одну запись в секунду на ключ.
По поведению KV Instant обеспечивает чтение p99 за 1.62 мс и репликацию записи p99 около 256 мс, тогда как классический режим — 287 мс и 4.38 с соответственно. Чтение стоит $0.20 за миллион, что на 60% дешевле, но хранение и Class A операции значительно дороже.
Как использовать пост-квантовые алгоритмы
Для ML-KEM ключи генерируются с именем алгоритма "ML-KEM-768", флагом извлекаемости true и списком использований ["encapsulateBits", "decapsulateBits"]. Флаг извлекаемости true разрешает экспортировать ключевой материал, а список использований ограничивает операции, которые допускаются с ключом. Затем инкапсуляция с публичным ключом даёт общий секрет и шифртекст, а декапсуляция с приватным ключом восстанавливает тот же общий ключ.
Для ML-DSA ключи генерируются с именем "ML-DSA-44", флагом извлекаемости false и списком использований ["sign", "verify"]; подпись создаётся приватным ключом, а проверяется публичным.
Поскольку API поддерживается не во всех средах, библиотекам следует проверять его наличие, а не предполагать, что оно есть везде. Перед генерацией ключей можно убедиться, что нужный алгоритм доступен для подписи, и только затем создавать пару ключей:
if (SubtleCrypto.supports("sign", "ML-DSA-44")) {
const keys = await crypto.subtle.generateKey("ML-DSA-44", false, ["sign", "verify"]);
}Чтобы включить современные криптоалгоритмы, в wrangler.jsonc нужно добавить compatibility_flags с флагом "webcrypto_modern_algorithms".
Предыстория
До анонса Basin работал в открытой бете, и его сразу начали внедрять разработчики, включая биллинговую и инфраструктурную команды Cloudflare. Они использовали сервисы для разных задач: оптимизации сайтов электронной коммерции с помощью данных в реальном времени, долговременного хранения и отчётности по метрикам биллинга, а также приёма и запросов телеметрии от инфраструктуры Cloudflare. Ранние пользователи также включали Anomaly, чей соучредитель Дакс Раад сообщил о переносе всего конвейера данных компании на Basin Pipelines, Catalog и SQL, заменив сложную конфигурацию AWS S3 и Athena. За год были улучшены три области: скорость, открытость и экономическая эффективность.
У Cloudflare уже были асинхронные примитивы доставки — Queues и Basin Pipelines. Queues предназначены для отслеживания отдельных элементов дорогой или длительной работы и поддерживают сложную логику на уровне отдельного рабочего элемента: повторные попытки, задержки и очереди недоставленных сообщений. K2, напротив, рассчитан на крупномасштабное перемещение данных, долговременное хранение и разветвлённое потребление; сообщения производятся и потребляются пакетами, что даёт эффективную обработку ценой повторных попыток на уровне сообщения и более высокой задержки производителя. Basin Pipelines рекомендуют, когда конечный результат — запись событий в объектное хранилище или таблицы Iceberg, а K2 — когда нужна собственная обработка или запись в другие места назначения.
Большинство компаний разворачивают Apache Kafka, но Pipelines работает на периферии Cloudflare, охватывающей множество серверов в более чем 335 городах. Из-за уникальной архитектуры Cloudflare часто не может запускать традиционное распределённое программное обеспечение вроде Kafka, поэтому приходится переосмысливать построение и эксплуатацию таких систем.
Почему это сделали
Basin решает проблему дорогого и сложного построения аналитических данных: он объединяет Pipelines, Catalog и SQL для приёма, хранения и запросов, а также даёт бесплатный egressвывод данных из хранилища наружу и оплату только за фактическое использование.
K2 решает проблему durable bufferingнадёжного накопления событий с сохранением их до обработки на глобальной edge-инфраструктуре Cloudflare, где нельзя запускать традиционные распределённые системы вроде Kafka, и строит лог поверх объектного хранилища R2. Объектное хранилище не поддерживает обычные append-операциидобавление данных в конец уже записанного файла, поэтому приходится записывать полные файлы или сегменты, достаточно крупные, чтобы окупить стоимость записи и чтения каждого.
Workers KV Instant решает проблему медленного глобального распространения изменений и холодных чтений: он использует Quicksilverвнутреннюю систему Cloudflare для быстрого распространения данных по всем её серверам, чтобы обеспечить мгновенную доступность без ожидания истечения TTL.
Пост-квантовая криптография в Workers решает проблему отсутствия нужных примитивов в Web Crypto: разработчикам приходилось либо не строить протокол поверх Web Crypto, либо приносить собственную реализацию, что увеличивало приложения и требовало повторной работы для downstream-библиотек.
Что это меняет на практике
При переходе на KV Instant большинство операций с биндингами совместимы с классическими аналогами Workers KV, но нужно указать режим при создании namespace, учесть отсутствие metadata и отсутствие пагинации в list. Частота записи ограничена одним записью на namespace в секунду, потому что записи должны проходить через единую систему записи. Чтение (Class B, get) стоит $0.20 за миллион запрошенных ключей, что на 60% дешевле классического Workers KV, при этом каждый запрошенный ключ в одном get тарифицируется отдельно. Запись, удаление и list (Class A) стоят $0.10 за операцию, а хранение — $100 за MB в месяц.
KV Instant обеспечивает чтение более чем в 100 раз быстрее классического режима: p99 менее двух миллисекунд, а p95 измеряется в микросекундах. Запись распространяется более чем в 20 раз быстрее, при этом 99% записей реплицируются примерно за 250 мс.
AI Search принимает текстовые файлы и PDF размером до 10 MiB (ранее 4 MiB).
K2 доступен в публичной бете для аккаунтов с подпиской Workers Paid, с лимитами: максимум 10 ГБ хранилища и 30 МБ/с записи на поток. Во время беты использование K2 не тарифицируется, а после начала биллинга ожидается цена: $0.04/ГБ за произведённые данные, $0.04/ГБ за потреблённые данные и $0.02/ГБ/месяц за хранимые данные.
KV Instant запускается в приватной бете. Каждый ключ может быть до 300 байт, значения любого размера, если namespace не превышает один мегабайт, и namespace может содержать до 10 000 пар ключ-значение.
Ограничения и открытые вопросы
ML-KEM-512 не поддерживается, потому что используемая в Workers версия BoringSSL его не предоставляет. Вместо отдельной реализации для этого варианта авторы начинают с алгоритмов, доступных через нативную криптобиблиотеку. Также поддерживаются ML-KEM-1024, ML-DSA-65 и ML-DSA-87.
Из более крупного предложения WICG не вошли SHA-3, cSHAKE, TurboSHAKE, ChaCha20-Poly1305 и HPKE. Все добавленные алгоритмы пока являются опциональными и находятся за флагом совместимости, поскольку API основан на черновике.
Фраза «This change does not make every protocol post-quantum by itself» означает, что изменение само по себе не делает каждый протокол постквантовым, а лишь даёт разработчикам и авторам библиотек недостающие примитивы: ML-KEM для инкапсуляции ключа, ML-DSA для подписей и вспомогательные API, делающие эти примитивы доступными через Web Crypto.