Cloudflare добавляет Custom Regions, чтобы совместить глобальный edge и локальные ограничения. Это ответ на давление compliance, которое начинает влиять на архитектуру маршрутизации.
Проблема проявляется, когда глобальная edge-модель сталкивается с требованиями локализации данных. Архитектура Cloudflare по умолчанию оптимизирует latency через ближайший дата-центр. Но как только появляются требования держать TLS termination и L7-обработку в конкретных странах, эта модель начинает конфликтовать с compliance. Предопределённые регионы частично закрывают задачу, но быстро упираются в реальные сценарии: исключения стран, нестандартные группы, регуляторные нюансы.
Решение — сдвиг от фиксированных регионов к программируемым границам. Custom Regions позволяют задать произвольную географию через правила. Это компромисс: сохраняется глобальный ingress и защита на уровне L3/L4, но вводится строгий контроль, где происходит чувствительная обработка (TLS termination, Layer 7). В отличие от region-first облаков, где регион жёстко связан с инфраструктурой, здесь регион — это логическое условие поверх глобальной сети.
Реализация строится на трёх элементах. Первое — определение региона через выражения по metadata дата-центров, например country_code. Поддерживаются include и exclude правила. Второе — выбор in-region назначения: система пересекает допустимые дата-центры с ранжированием по текущему состоянию сети (latency, capacity, health). Третье — enforcement на edge: трафик принимается глобально, затем проверяется соответствие региону и либо обрабатывается локально, либо маршрутизируется внутрь допустимой зоны. Это добавляет дополнительный шаг принятия решения на пути запроса, но позволяет не жертвовать устойчивостью edge-сети.
Результат — более точное соответствие требованиям compliance без полного отказа от edge-first модели. При этом появляются новые trade-offs. Усложняется конфигурация и контроль правил. Потенциально растёт latency из-за дополнительной маршрутизации внутрь региона. Метрики влияния не раскрыты, но сама архитектура показывает сдвиг: от “глобально по умолчанию” к “глобально с ограничениями как код”. Это эволюционное изменение, которое делает политику размещения данных частью runtime-логики, а не только договорённостей на уровне региона.