Explica cómo la cadena de publicación de configuración entrega las políticas y cómo estas guían tanto la selección de la región de entrada como la selección del backend después de la autenticación.
7. Diseño de enrutamiento y multirregional
7.1 Modelo de enrutamiento
Cada configuración de ruta debe contener, como mínimo, la siguiente información:
- Identificador único de ruta.
- Identificadores de plataforma y servicio.
- Entorno de ejecución.
- Métodos HTTP permitidos y reglas de ruta normalizada.
- required scope.
- Tipo de lectura o escritura.
- Política de tiempo de espera, reintento, límite de cuerpo de solicitud y limitación de tasa.
- Región preferida, regiones permitidas para conmutación por fallo, identificador de servicio de backend y declaración de capacidad de servicio.
- Versión de configuración, momento de vigencia y versión de reversión.
Antes de publicar una ruta, debe superar validación estática: no hay conflicto de rutas, existe el required scope, el servicio destino está registrado, la solicitud de escritura declara explícitamente la política de idempotencia y el tiempo de espera tiene un límite.
7.1.1 Lógica de decisión del centro de política de enrutamiento de tráfico
El centro de política de enrutamiento de tráfico mantiene una política versionada, pero se ejecuta en dos ubicaciones. El primer punto de ejecución está en la entrada global y solo selecciona la región de entrada; el segundo está en el gateway regional y elige el backend después de completar la validación de API Key y la coincidencia de ruta. La indicación de comerciante o plataforma usada durante la entrada no está autenticada y solo puede reducir el conjunto de candidatos de entrada, no conceder permisos; después de entrar en una región debe volver a verificarse con la identidad validada, y si no coincide se debe seleccionar de nuevo un backend elegible o rechazar la solicitud.
La reunión solo confirmó redundancia multirregional y capacidad de enrutamiento, no un algoritmo concreto. Los modos de preferencia fija y principal-reserva son la línea base de diseño actual; activo-activo por peso o proximidad es una opción recomendada, desactivada por defecto, que solo puede utilizarse para lecturas sin estado dentro del conjunto de regiones permitido explícitamente por el comerciante. El punto de ejecución 1 no puede determinar con fiabilidad el tipo de solicitud antes de autenticar; si una solicitud de escritura llega a una región que no es writer, el punto de ejecución 2 debe seleccionar el writer actual o devolver 503, y no debe producir escritura interregional sin control. El producto de tráfico global, el punto de terminación TLS y el mecanismo de indicaciones de enrutamiento previas a la autenticación todavía no están determinados, por lo que el comportamiento ante fallo de entrada y las entradas disponibles deben confirmarse tras la selección técnica. El reason_code del diagrama solo se escribe en el registro interno de decisiones y en auditoría, no se divulga externamente; los errores externos siguen la sección 6.2.
7.2 Pertenencia regional del comerciante
Para cada comerciante se mantiene una región preferida explícita y una lista de regiones disponibles. El centro de política de enrutamiento de tráfico publica la política en los dos puntos de ejecución: la entrada global envía preferentemente la solicitud del comerciante a la región preferida y el gateway dentro de la región elige el backend después de autenticar según la partición de enrutamiento del comerciante, capacidad del servicio y tipo de solicitud.
La pertenencia regional del comerciante no puede depender únicamente de la geolocalización de resolución DNS, porque la salida del comerciante, el punto de acceso de red privada y la ubicación de los datos de negocio pueden ser diferentes. La política regional debe configurarse y auditarse desde el plano de control.
7.3 Conmutación por fallo regional
- El plano de datos del gateway se despliega en varias zonas de disponibilidad; el balanceo de carga regional retira automáticamente una instancia o zona de disponibilidad que falle.
- Después de confirmar que una región no está disponible, el punto de ejecución de entrada del centro de políticas de enrutamiento solo cambia a los comerciantes autorizados para conmutación por fallo a una región de reserva ya configurada y elegible.
- Al integrar cada plataforma se debe declarar el nivel de coherencia de lectura, retraso máximo permitido de réplica, método de recopilación de la señal de estado de réplica y antigüedad máxima de la señal. Una solicitud de lectura solo puede conmutar automáticamente por fallo cuando el retraso de réplica informado por la región de reserva no supera el máximo permitido por la ruta y la señal de estado no está vencida.
- Una solicitud de escritura de pagos solo puede reintentarse entre regiones cuando la plataforma de backend proporciona una clave de idempotencia global, restricción única y un mecanismo explícito para cambiar la región principal de escritura.
- Si el backend no satisface los requisitos previos de escritura interregional, el gateway devuelve un
503trazable y está prohibido escribir simultáneamente en dos regiones. - Después de recuperar la región, se realiza una reversión controlada: primero se validan la versión de configuración de autorización y el estado de réplica del backend, y luego se restaura el tráfico gradualmente.
7.4 Límite de múltiples bases de datos de backend
La reunión mencionó que Zero Confirmation puede usar tres bases de datos y BPS podría adoptar un modelo similar en el futuro. El gateway solo conserva metadatos de "a qué servicio de backend debe enrutarse un comerciante o partición"; no posee conexiones a bases de datos particionadas de negocio ni divide SQL de negocio.
Cada plataforma debe garantizar por sí misma:
- La coherencia entre el mapeo de particiones y la topología de bases de datos de negocio.
- Restricciones únicas e idempotencia de las escrituras de transacciones.
- Replicación interregional, punto de recuperación y tiempo de recuperación.
- La publicación al gateway de nuevos endpoints de servicio disponibles o una nueva versión de ruta después de completar el cambio de base de datos.
7.5 Recuperación ante desastres del plano de control
El plano de control unificado adopta modo activo y de reserva entre regiones; en cualquier momento solo se permite escribir a una región de plano de control:
- PostgreSQL utiliza replicación síncrona dentro de la región primaria y replica WAL de forma asíncrona hacia la región de reserva; el objetivo de retraso de réplica en la región de reserva no supera 60 segundos.
- La versión del plano de control utiliza una versión de dos partes
(epoch, sequence)y se compara en orden lexicográfico. Las confirmaciones normales solo incrementansequence; al cambiar la región primaria primero se incrementaepochy luego se inicia un nuevosequence, y se prohíbe que dos regiones produzcan versiones comparables pero divergentes. - Antes de promover la región primaria o de que la reserva asuma el control, se debe confirmar mediante vallado de base de datos gestionada o arrendamiento de consenso que el nodo primario anterior perdió permiso de escritura; si no se puede completar el vallado, está prohibido asumir el control.
- Una instancia del plano de control solo puede aceptar escrituras administrativas mientras posea un arrendamiento válido de escritura única, y falla en modo cerrado inmediatamente cuando vence el arrendamiento.
- Si el retraso de aplicación WAL de la región de reserva supera 60 segundos, deja de aceptar escrituras ordinarias de configuración y emite alerta; las operaciones de denegación de emergencia utilizan el canal break-glass de la sección 10.3.
- Después de asumir el control, primero recupera eventos Outbox no publicados y después publica una instantánea completa de configuración con el nuevo
epoch; todas las regiones rechazan cualquier evento delepochanterior. - Se recomienda un objetivo de tiempo de recuperación del plano de control de 30 minutos y un objetivo de punto de recuperación de configuración de 1 minuto; ambos objetivos deben validarse mediante ejercicios trimestrales de recuperación.
Un fallo del plano de control no debe interrumpir las solicitudes del plano de datos que ya cargaron configuración, pero pausará la creación ordinaria de Key, rotación, cambio de Scope, cambio de IP y publicación de rutas.