Venta Inteligente · Orquestador PPM
v1.0 · 21 may 2026 · CTO PPM · EA team · NBM · B.2.3 Discovery

Un orquestador.
Siete marcas.
Cero re-arquitectura.

Propuesta arquitectónica del Orquestador de Eventos PPM como plataforma transversal multi-tenant. Venta Inteligente es el primer consumidor y el caso de prueba. Documento defendible para cierre de Discovery B.2.3 y promoción a Listo WSJF en B.2.4.

Decisiones cerradas
9 de 10
solo cloud target queda abierto · espera CTO
Marcas en el contrato
7
ClubMiles · Pichincha Miles · BGR · Discover · Dropshipping · BPO · Sorvo
Envelope
8 campos
POST /v1/events · data flat snake_case
Catálogo inicial
19 eventos
de lead.captured a journey.completed
Ventana de diseño
Mes 2
v1 mínima viable · journey end-to-end demostrable

Diez decisiones, nueve cerradas

Cada decisión cierra un unknown crítico del lane CIT. Las cerradas dejan huella en el documento con fecha, contexto y puntero a la sección donde se materializan. La única abierta espera input directo del CTO.

La historia en una imagen

Los actores externos publican eventos al orquestador único PPM. El orquestador alimenta a Amplitude que segmenta y enriquece; Amplitude pasa cohortes a Braze que orquesta la comunicación multicanal hacia el lead o socio.

Diagrama · actores → orquestador → Amplitude → Braze → cliente
flowchart LR subgraph ACT["Actores externos · publican eventos"] direction TB RAM[RAM
pautas digitales] Centro[CentroHub
scoring · IA · ODV] GxC[GxC
gestor · WhatsApp] Diners[Diners Core
TC + millas] Urbano[Urbano
courier + OTP] Callix[Callix
consentimientos] end Orquestador[("ORQUESTADOR PPM
multi-tenant
POST /v1/events")] Amp["Amplitude CDP
cohortes + predictions"] Braze["Braze
orquesta comms
WhatsApp · email · push"] Cliente((Cliente / Lead)) RAM --> Orquestador Centro --> Orquestador GxC --> Orquestador Diners --> Orquestador Urbano --> Orquestador Callix --> Orquestador Orquestador ==> Amp Amp ==> Braze Braze ==> Cliente classDef actor fill:#43A047,stroke:#1B5E20,color:#FFFFFF classDef orquestador fill:#0d7878,stroke:#073B6F,color:#FFFFFF,stroke-width:3px classDef saas fill:#26A69A,stroke:#00695C,color:#FFFFFF classDef cliente fill:#FFD54F,stroke:#F57C00,color:#7F4F00,stroke-width:2px class RAM,Centro,GxC,Diners,Urbano,Callix actor class Orquestador orquestador class Amp,Braze saas class Cliente cliente

Productores, orquestador core, consumidores

Tres bloques de responsabilidad. El orquestador core PPM expone una sola puerta de entrada (POST /v1/events) y particiona el Event Hub por tenant desde el envelope. Sin acoplamiento productor-consumidor.

Diagrama · componentes del orquestador core
flowchart LR subgraph PROD["Productores"] direction TB RAM[RAM
Meta/Google/MSFT] CALLIX[Callix
DPA] CENTRO[CentroHub
10 modelos R] GXC[GxC
Front · AV] DINERS[Diners Core
TC + millas] URBANO[Urbano
courier + OTP] PPMSVC[Servicios PPM
OTP · Notif · Millas] end subgraph BUS["Orquestador PPM multi-tenant"] direction TB APIGW["API Gateway
POST /v1/events"] VALID["Validator + Dedup
envelope · 24h"] EVHUB["Event Hub
partición por tenant"] SNS["Fan-out SNS"] SQS["Buffer SQS
long-running"] LAKE[("Data Lake
S3 · Athena")] DLQ["Dead Letter Queue"] APIGW --> VALID VALID --> EVHUB EVHUB --> SNS EVHUB --> SQS EVHUB --> LAKE EVHUB -. errores .-> DLQ SQS -. errores .-> DLQ end subgraph CONS["Consumidores"] direction TB AMP[Amplitude CDP] BRAZE[Braze] FEED[Feedback Loop] DASH[Tableros] AUDIT[Auditoría] end RAM --> APIGW CALLIX --> APIGW CENTRO --> APIGW GXC --> APIGW DINERS --> APIGW URBANO --> APIGW PPMSVC --> APIGW SNS --> AMP SNS --> BRAZE SNS --> FEED SNS --> DASH SNS --> AUDIT LAKE --> FEED LAKE --> AUDIT classDef orquestador fill:#0d7878,stroke:#073B6F,color:#FFFFFF classDef saas fill:#26A69A,stroke:#00695C,color:#FFFFFF classDef prod fill:#43A047,stroke:#1B5E20,color:#FFFFFF classDef cons fill:#8E24AA,stroke:#4A148C,color:#FFFFFF classDef lake fill:#438DD5,stroke:#0D5091,color:#FFFFFF classDef dlq fill:#E57373,stroke:#B71C1C,color:#FFFFFF class APIGW,VALID,EVHUB,SNS,SQS orquestador class LAKE lake class DLQ dlq class AMP,BRAZE,FEED,DASH,AUDIT cons class RAM,CALLIX,CENTRO,GXC,DINERS,URBANO,PPMSVC prod
D1 · D10
Envelope multi-tenant
Contrato único de ingesta · 8 campos meta · data flat snake_case
8 campos
tenant obligatorio · día 1
+
Por qué importa
Una sola puerta de entrada elimina N integraciones punto a punto. El campo tenant aísla siete marcas PPM sin levantar infraestructura paralela. Reduce deuda técnica anticipada cuando se incorporen Pichincha Miles, BGR o Discover Cashback al orquestador.
Cómo se mide
Endpoint único POST /v1/events. Envelope con event_id, event_name, producer, tenant, occurred_at, correlation_id, schema_version, data. Respuesta 202 Accepted con event_id, received_at y trace_id.
Target
202 Accepted · idempotencia 24h
Estado actual
Cerrado el 2026-05-21 con dos decisiones consecutivas (D1 envelope, D10 ampliación multi-tenant). Materializado en 04-architecture §5 y §6.
Riesgo de fallo
Si un actor crítico no acepta el sobre fijo, se reabre. Mitigado: cada actor entrega su superficie nativa a un adapter; el adapter traduce al sobre y publica. La heterogeneidad vive solo en la ingesta.
D2
Orquestación de journeys
Braze para comms · servicios PPM encapsulados para operativo
Braze · servicios PPM Step Fn contingencia
+
Por qué importa
Define dónde vive el estado del journey. Braze orquesta comms al lead y socio (multicanal). Los procesos operativos largos (lead → score → ODV → contacto → solicitud → courier → activación) se manejan con eventos del orquestador + servicios PPM encapsulados (Servicio OTP, Servicio Notificaciones, Servicio Millas).
Cómo se mide
Cero orquestador con estado durable por defecto. Step Functions queda como contingencia reversible: se activa solo si el PoC demuestra que un flujo específico (probable: entrega Urbano + OTP) lo requiere.
Target
Sin máquina de estado por default
Habilitadores
Servicios PPM modelados como containers en 04b §2.4 (capa Orquestación). Braze ya contratado (cotización Minders cerrada · ver D9).
Riesgo de fallo
Si en It-2/It-3 un flow operativo pierde idempotencia, observabilidad o retries por falta de máquina de estado, se reabre y se evalúa Step Functions para ese flow específico, no para el orquestador completo.
D4
Identidad cross-actor
OAuth2 Client Credentials · mTLS para Diners Core y Buró
esquema cerrado · IdP pendiente 4 de 5
+
Por qué importa
Define cómo cada actor demuestra identidad al orquestador. OAuth2 Client Credentials con JWT para mayoría: SaaS (Amplitude, Braze, Callix), socios operativos (Centro, GxC, RAM) y servicios internos PPM. mTLS con certificados X.509 para integraciones bidireccionales críticas con Diners Core y Buró Crediticio. Estándar bancario LATAM.
Cómo se mide
Tokens de corta duración (15-60 min) con refresh por client credentials. Rotación automática de secrets cada 90 días. Usuarios humanos fuera del scope del orquestador: SSO PPM resuelve en cada container.
Target
Rotación · 90 días
Excepción válida
Si un actor crítico no soporta OAuth2 ni mTLS (improbable), se reabre el esquema para ese actor específico, no el patrón completo.
Estado actual
Esquema técnico cerrado. IdP corporativo pendiente con CTO PPM. Opciones evaluadas: AWS Cognito (gratis si vamos AWS), Auth0, Okta (depende de licenciamiento), IdP propio (no recomendado).
D3
Compliance Ecuador
Defaults técnicos sensatos + 3 validaciones pre-MVP con Legal
3 pendientes
residencia · tokenización · retención
+
Por qué importa
El discovery y el PoC no se bloquean por interpretación regulatoria. Los ajustes que pida Legal se aplican como modificación de ingesta o logging del orquestador, sin reabrir diseño del envelope.
Cómo se mide
Defaults aplicados desde discovery: TLS 1.2+ in-transit, mTLS donde crítico, AWS KMS at-rest, tokenización de cédula y número TC en ingesta, logs sin payload sensible (solo event_id, event_name, producer, correlation_id, trace_id, status, latencia).
Target
Validar pre-MVP · 3 ítems
Riesgo de fallo
Tres validaciones pendientes con CTO/Legal: residencia de datos (Ecuador vs LATAM sa-east-1 vs us-east-1), formato de tokenización aprobado por Diners (FF1, FF3, vault propio o AWS KMS estándar), retención por dominio.
D5
Orquestador transversal construido desde cero
PPM no opera orquestador de eventos hoy · sin gobernanza heredada
0 legado
ningún orquestador en producción
+
Por qué importa
Sin platform team con políticas existentes sobre publicación de eventos. El orquestador se dimensiona y diseña como plataforma transversal PPM multi-tenant, no como componente específico a Venta Inteligente. Venta Inteligente es el primer caso de uso y el caso de prueba.
Cómo se mide
Catálogo de eventos (04-architecture §5.4) es la única fuente de verdad sobre qué circula por el orquestador. Agnóstico de tenant: el mismo lead.captured sirve para todas las marcas.
Target
Multi-tenant día 1
Habilitadores
Ownership inicial: lane CIT. Transición al equipo de plataforma PPM se planifica en 08-handoff.md con alcance multi-tenant completo, no solo Venta Inteligente.
Riesgo de fallo
Si en algún punto PPM decide que cada marca tendrá su propio orquestador, la decisión se reabre y se evalúa el costo de la fragmentación vs operación compartida.
D6
APIs Diners y Urbano
Delegado a sesiones de discovery con cuestionarios escritos
2 sesiones · 20 preguntas pendiente agendar
+
Por qué importa
No es decisión arquitectónica del lane CIT. Es información factual que solo Diners y Urbano pueden entregar. El plan de discovery ya tiene dos sesiones dedicadas con cuestionarios escritos. Se cierra como delegado, no como decisión técnica.
Cómo se mide
Urbano: 10 preguntas U.1-U.10 (API B2B, OpenAPI, sandbox, auth, OTP por WhatsApp, SLAs reales, plan B manual). Diners: 10 preguntas D.1-D.10 (catálogo APIs, productos invocables, mix REST/legacy, sandbox, ventanas batch, SLA contractual).
Target
Cargar a 02-actores tras sesiones
Habilitadores
Reunión Christian 2026-05-21 puede aportar input inicial. Las respuestas alimentan el catálogo de eventos §5.4 si surgen eventos nuevos, o las decisiones de adapter en §4.
D9
Workspaces y planes SaaS
Cotización Minders aterrizada · 6 pendientes de negociación
$294.5K
Braze + Amplitude · anual
+
Por qué importa
Fija el OPEX SaaS del orquestador. Confirma que PPM ya opera Braze y Amplitude bajo contrato marco multi-marca con marcas incorporables vía adendas. Validación externa de D10.
Cómo se mide
Braze anual $240,520 (180K MAUs · 10.4M WhatsApp credits · 4 IPs dedicadas). Amplitude Growth 300M + G&S anual $54,000. Minders services anuales $60,000. Marcas bajo contrato marco: 7.
Target referencial
Reusar workspace ClubMiles
Señal de alerta
Discrepancia con C4 del CTO: declara Amplitude en $14K/mes ($168K/año), cotización real es ~$4.5K/mes ($54K/año). Diferencia ~3x. Pendiente validar con CTO si el C4 corresponde a un escenario distinto o está desactualizado.
Excepción válida
Si CentroHub no entrega Predictions/Recommendations propios, evaluar contratación de CDP Growth (+$13K/año) o CDP Enterprise (+$38K/año).
D8
Visión arquitectónica EA team
10 must-ask + 2 nice-to-have · cierra simultáneamente D1, D3, D4
5 unknowns cubiertos sesión pendiente
+
Por qué importa
Cada cuestionario de stakeholder pasa por revisión crítica "preguntas justas y necesarias" antes de la sesión. No se delega por defecto al estado existente del documento. La sesión EA cierra simultáneamente componentes pendientes de varios ítems.
Cómo se mide
Cuestionario en 03-sesiones-actores §1. Cobertura: EA.4 (cloud target U1), EA.5 (IdP D4), EA.6 (compliance D3), EA.11 (naming de eventos corporativo), EA.12 (validación de los 6 riesgos del CTO).
Target
Sesión agendada · respuestas integradas
Habilitadores
Cobertura simultánea de gobernanza del sign-off (EA.10) y formato del entregable (EA.8 · ArchiMate vs Mermaid vs draw.io).
U1
Cloud target · única decisión abierta
AWS · Cloudflare · híbrido · espera confirmación CTO PPM
3 opciones evaluadas C4 sugiere AWS
+
Por qué importa
Bloquea decisión irreversible de lock-in. El C4 del CTO (autoridad alta) ya muestra AWS-native como backbone (EventBridge + API Gateway + SQS + SNS + S3 + Athena + CloudWatch). El lane CIT mantiene la decisión abierta hasta validación independiente.
Cómo se mide
Tres familias candidatas en 04-architecture §3: A) AWS-native, B) Cloudflare-native (Workers + Queues + Durable Objects + R2), C) Híbrido (Cloudflare frontera + AWS núcleo). Decisión depende de volumen real, latencia tolerable, residencia EC y networking con Diners/Urbano.
Target
Confirmar antes de It-3
Riesgo de fallo
Sin decisión, el modelo de costos 06-cost-model.md no se cierra con datos reales. Mitigado: pregunta redactada para CTO el 2026-05-21, sesión EA cubre vía EA.4 (modelo de cuentas).
Excepción válida
Si el discovery descubre un sistema interno PPM que ya operativiza una nube, esa decisión es input, no candidata.

Un solo sobre. Todos los mensajes.

Cualquier actor publica al mismo endpoint con el mismo formato. Ocho campos meta gobiernan ruteo, idempotencia, aislamiento multi-tenant y trazabilidad. El bloque data viaja flat snake_case y evoluciona aditivo sin romper consumidores.

Ejemplo · lead.captured desde RAM hacia el orquestador
{
  "event_id":       "9a3b1f0e-2c4d-4e8f-b1a2-7d9c5e6f8a01",
  "event_name":     "lead.captured",
  "producer":       "ram:meta-ads",
  "tenant":         "clubmiles",
  "occurred_at":    "2026-09-12T14:22:31Z",
  "correlation_id": "lead-2026-meta-78421",
  "schema_version": "v1",
  "data": {
    "campaign_id":     "meta-2026-pmax-tc-platinum",
    "lead_email":      "maria.lopez@ejemplo.com",
    "lead_phone_e164": "+593998877665",
    "utm_source":      "meta",
    "utm_campaign":    "tc-platinum-q3"
  }
}
event_id
Idempotencia
Dedupe automático 24h. Un mismo evento publicado dos veces se procesa una sola vez.
tenant
Aislamiento multi-marca
Partición del Event Hub por marca PPM. Sin levantar infraestructura paralela.
correlation_id
Hilo del journey
Trazabilidad end-to-end del lead a través de scoring, ODV, contacto, solicitud y entrega.
data flat
Evolución aditiva
snake_case, sin nested. Agregar campos no rompe consumidores existentes.

Catálogo completo del v1 inicial (19 eventos · de lead.captured a journey.completed) en 04-architecture §5.4.

Nueve patrones, una sola puerta

El orquestador no obliga a una superficie única. Absorbe lo que las marcas ya operan hoy: REST, webhooks, FTP legacy de Diners, SDKs de vendor, CDC del core bancario. La heterogeneidad vive en la capa de adapters; el resto del orquestador solo conoce el envelope.

Patrón Cuándo se usa AWS-native Cloudflare-native
REST sync Consultas en línea · ODV on demand, validación de scoring API Gateway + Lambda Worker + fetch
REST async (push) Comandos sin respuesta inmediata API Gateway → SQS → Lambda Worker → Queue → consumer
Webhook ingest Eventos push desde proveedores · Meta, Google, Urbano, Braze API Gateway + Lambda + DynamoDB dedupe Worker + KV/D1 dedupe
Webhook emit Notificar a actores externos EventBridge → API destination Worker + scheduled triggers
FTP / SFTP batch Diners legacy, reportes RAM Transfer Family → S3 → EventBridge No nativovía AWS o agente intermedio
SDK Frontends web o móvil hacia Amplitude y Braze Vendor SDK Vendor SDK
Stream / CDC Cambios en core Diners hacia el orquestador DMS / Kinesis Externopipeline AWS hacia Cloudflare
Cola dedicada Trabajos masivos · envío WhatsApp, OTP SQS / SNS Queue
Orquestación Journeys con estado Step Functions Workflows (beta) · Durable Objects

El orquestador no exige que los actores migren su superficie. El adapter por actor traduce al envelope §04 y publica. Los dos puntos donde Cloudflare obliga a apoyarse en AWS (FTP legacy y CDC del core) condicionan la decisión abierta U1 sobre cloud target.

El orquestador no es del proyecto. Es de la compañía.

Venta Inteligente paga el costo de construirlo. Las siguientes seis marcas se montan sin re-arquitectura. Sin esta decisión, el orquestador sería deuda técnica garantizada.

"Diseñamos 1 orquestador para 7 marcas PPM con un envelope de 8 campos meta y tenant obligatorio desde el día 1. Venta Inteligente valida el contrato; los próximos proyectos del CTO lo reusan sin re-arquitectura. Cerramos 9 de 10 unknowns en una semana: solo el cloud target espera confirmación."
Alcance
Plataforma transversal
ClubMiles, Pichincha Miles, BGR, Discover Cashback, Dropshipping, BPO y Sorvo bajo el mismo contrato. Tenant aísla y enruta desde el envelope.
Contrato
Envelope flat
POST /v1/events. 8 campos meta. Data flat key-value snake_case. Sin schema registry pesado: validación opcional del lado del consumidor.
Operación
Braze + servicios PPM
Comms multicanal en Braze. Procesos operativos en servicios PPM encapsulados. Step Functions queda como contingencia reversible, no default.
Seguridad
OAuth2 + mTLS
OAuth2 Client Credentials para mayoría. mTLS para Diners Core y Buró. Estándar bancario LATAM. Tokens cortos. Rotación 90 días.

Seis riesgos del CTO, impacto al lane CIT

El C4 del CTO declara seis riesgos arquitectónicos a vigilar. Cada uno tiene una implicación directa al diseño del orquestador o a la ventana de discovery. Se documentan literalmente para anclar las decisiones futuras.

R1
Diners Core concentra dependencias sin SLA
8 dependencias sin SLA visible · ruta crítica del MVP sep 2026
8 deps
criticidad ALTA · sin SLA
+
Por qué importa
Si Diners no formaliza SLA antes del Mes 1, el cronograma del MVP queda expuesto. Plan B declarado por el CTO: cupo asignado estáticamente.
Cómo se mide
Cuestionario D.10 a Diners pide SLA contractual PPM-Diners. Sesión D.1-D.10 cubre catálogo de APIs, productos invocables, mix REST/legacy y ventanas batch.
Target
SLA antes del Mes 1 MVP
Riesgo de fallo
Adapter de Diners debe diseñarse con timeout largo y reintentos exponenciales. Tolerar respuestas tardías sin bloquear el journey.
R2
Urbano subdimensionado en RACI
6 entregables bloqueados sin sustituto · RACI lo marca C, criticidad real A
6 bloqueados
sin sustituto contractual
+
Por qué importa
Adapter de Urbano se diseña como dependencia crítica externa. Sesión U.1-U.10 valida si el SLA real soporta el journey de día 1 (API B2B, OTP por WhatsApp, agendamiento, plan B manual).
Cómo se mide
Secuencia entrega + OTP es la primera candidata a Step Functions si el PoC demuestra que la falta de máquina de estado degrada idempotencia. Trigger documentado en D2.
Target
SLA validado en sesión
Riesgo de fallo
Sin plan B contractual, la fase Entrega del journey queda expuesta. Documentar en 01-framing R8-R10 y elevar a comité.
R3
Minders · precio efectivo no cerrado
WhatsApp credits · IPs · Content Cards en negociación abierta
6 ítems
pendientes con Minders
+
Por qué importa
El 06-cost-model.md futuro no se cierra hasta resolver: regularización de créditos WhatsApp, tasa de conversión, IPs dedicadas como pago perpetuo, Currents pago único, Content Cards sin cargos posteriores, incorporación de 6 marcas vía adendas.
Cómo se mide
Correo Cristian Portero 2025-07-07 documenta los 6 pendientes. Validar si siguen abiertos o ya se resolvieron.
Target
Bloqueo no técnico · resolver con NBM
Excepción válida
El diseño técnico del orquestador no depende de esta negociación. Solo el modelado de costos OPEX.
R4
CentroHub · accountability ausente en RACI
10 modelos R puros · $762K setup · nunca A en RACI
$762K
setup · sin accountability formal
+
Por qué importa
Si CentroHub opera sin ser A en ningún componente, los SLA de modelos de IA quedan diluidos. La accountability formal pasa por Diners y GxC, no por el proveedor del setup más caro del proyecto.
Cómo se mide
Pregunta abierta de gobernanza. Levantarlo en sesión de discovery con Centro y validar contractualmente.
Target
Definir si brecha o contrato
Habilitadores
Anomalía técnica: modelos declarados como R puros, no Python. Integración con CentroHub probablemente pasa por servicios HTTP que envuelven runtimes R (Plumber, RestRserve).
R5
Hito 5 fuera del diagrama
Journey contractual cubre 4 hitos · desarrollo de cliente queda como horizonte
4 hitos modelados Hito 5 difiere
+
Por qué importa
Confirmar con NBM y CTO si el orquestador debe soportar eventos de Hito 5 (benefit.activated ya está en el catálogo, pero la lógica de cross-sell y retención no está modelada).
Cómo se mide
Decisión de alcance MVP vs diferir. No bloquea el orquestador core; sí dimensiona el catálogo de eventos.
Target
Decisión NBM antes de WSJF
Excepción válida
Si Hito 5 se difiere, el catálogo §5.4 se mantiene y los eventos de cross-sell se agregan additive en versión posterior sin breaking change.
R6
Capa Datos PPM sin validación productiva
Columna vertebral del journey · ningún flujo la valida hoy con data real
It-0 cubre · It-2 valida riesgo lane CIT
+
Por qué importa
Riesgo más relevante para el rol CIT. Sin validación productiva temprana, se descubren gaps de eventos tarde, cuando el costo de cambio es alto.
Cómo se mide
Plan iterativo §9 cubre parcialmente. Priorizar PoC del envelope con datos sintéticos o muestra productiva apenas haya inventario suficiente de actores (It-1 Mes 2-3).
Target
PoC adapter · 2 superficies dispares · It-1
Habilitadores
Worker o Lambda que normaliza eventos desde un webhook real + un FTP simulado. Valida H7 (adapters por superficie heterogénea).

Cinco iteraciones, cinco hipótesis

Plan iterativo del lane CIT. Cada iteración entrega una salida concreta y valida una hipótesis del framing. Sin decisiones irreversibles sin spike previo.