Skip to content

Syntage · Buró de Crédito

Del webhook de Syntage a las 24 tablas del dataset buro (reportes de buró de empresa y de persona). Streaming directo, sin handler intermedio.

¿Llegaste hasta acá desde…?

Usa esta tabla para entrar en sentido inverso (lo que ves → de dónde sale):

Si ves… Eso sale de… La lógica está en…
Score / historial de buró en análisis de riesgo solvento-data-prod.buro.buro_score, buro_persona_score_buro_credito dbt-analytics → models/staging/syntage/stg_syntage__buro_*.sql
Reporte consolidado de buró (empresa / persona) solvento-data-prod.buro.buro_* dbt-analytics → models/intermediate/syntage/int_buro_*.sql
Un reporte de buró "crudo" solvento-data-prod.buro.buro_body / buro_persona_body (RAW) Ingesta (sin lógica de negocio); ver "Paso a paso"

Resumen

Campo Valor
Origen Webhook de Syntage (evento buro_de_credito_report)
Patrón Event-driven (Cloud Run → Pub/Sub → Dataflow)
Tabla RAW solvento-data-prod.buro.buro_body (+ 23 tablas más en el dataset buro)
Frecuencia Streaming
Criticidad 🟡 Media
Dueño Martin (data eng)
Repos webhook_syntage · template-buro

Diagrama de linaje

graph LR
    SYN[["📨 Syntage<br/>webhook buro_de_credito_report"]]

    subgraph ing["Ingesta (sin lógica de negocio)"]
        CR["Cloud Run<br/>webhook-syntage-inline-prod"]
        TOP(["Pub/Sub<br/>buro-webhook-prod"])
        DF["Dataflow<br/>buro-webhook-prod-20260123-123557"]
        RAW[("solvento-data-prod.buro<br/>buro_* · 24 tablas")]
    end

    subgraph cons["Consumo (dbt)"]
        AN["Riesgo / análisis crediticio<br/>dbt-analytics syntage"]
    end

    SYN -->|HTTP| CR --> TOP --> DF --> RAW
    RAW --> AN

    classDef src fill:#fde68a,stroke:#b45309,color:#000;
    classDef store fill:#bfdbfe,stroke:#1e40af,color:#000;
    classDef logic fill:#dcfce7,stroke:#15803d,color:#000;
    class SYN src;
    class RAW store;
    class AN logic;

Paso a paso

  1. Syntage emite un webhook cuando hay un reporte de buró nuevo o actualizado (buro_de_credito_report.created / .updated).
  2. Cloud Run webhook-syntage-inline-prod (webhook_syntage) recibe todos los eventos de Syntage y hace fan-out; para buró publica al topic buro-webhook-prod. Es el componente más crítico del ecosistema.
  3. Dataflow buro-webhook-prod-20260123-123557 (template-buro) consume la suscripción buro-webhook-subscription y escribe en streaming a las 24 tablas del dataset solvento-data-prod.buro (13 de empresa + 11 de persona). No hay handler API intermedio.

Tablas que alimenta

Dataset solvento-data-prod.buro — 24 tablas, todas cargadas por buro-webhook-prod-20260123-123557.

Grupo Tablas (cabecera / ejemplos) Job que las carga
Empresa (13) buro_body, buro_datos_generales, buro_credito_comercial, buro_credito_financiero, buro_score, buro_accionista, buro_historial_consultas, … buro-webhook-prod-20260123-123557
Persona (11) buro_persona_body, buro_persona_cuentas, buro_persona_score_buro_credito, buro_persona_domicilios, buro_persona_consulta_efectuadas, … buro-webhook-prod-20260123-123557

Consumo aguas abajo

  • Riesgo / análisis crediticio — staging e intermedios en dbt-analytics: models/staging/syntage/stg_syntage__buro_*.sql e models/intermediate/syntage/int_buro_*.sql. (No hay modelos de buró en dbt-etls.)

Si falla 🛠️

Impacto: si cae webhook-syntage-inline-prod se afecta todo Syntage (no solo buró). Mitigante: Syntage reintenta los webhooks; recuperar el servicio suele bastar.

Síntoma Dónde mirar Acción
No llegan reportes de buró nuevos Logs Cloud Run webhook-syntage-inline-prod Si fue un deploy → rollback; si es saturación → subir instancias/memoria. Syntage reintenta
Llega al topic pero la RAW no avanza Dataflow buro-webhook-prod-…: watermark y backlog de buro-webhook-subscription Transitorios se recuperan solos; relanzar consumiendo la misma suscripción. Si hay duda, escalar
Faltan algunas tablas buro_* pero otras sí cargan Logs del Dataflow (multi-schema: una tabla puede fallar y otras no) Revisar el esquema de la tabla afectada en template-buro
Datos "raros" en análisis de buró Lógica en dbt-analytics (stg_syntage__buro_*) Revisar la transformación en el repo, no la ingesta

Escalación: lógica SQL / Metabase → Diego · Airbyte → Gero · resto (webhook, Dataflow) → Martin.

Enlaces


Última actualización: 2026-06-21 · Si cambia el flujo o un modelo dbt, actualizar esta ficha en el mismo MR.