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
- Syntage emite un webhook cuando hay un reporte de buró nuevo o actualizado (
buro_de_credito_report.created/.updated). - Cloud Run
webhook-syntage-inline-prod(webhook_syntage) recibe todos los eventos de Syntage y hace fan-out; para buró publica al topicburo-webhook-prod. Es el componente más crítico del ecosistema. - Dataflow
buro-webhook-prod-20260123-123557(template-buro) consume la suscripciónburo-webhook-subscriptiony escribe en streaming a las 24 tablas del datasetsolvento-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_*.sqlemodels/intermediate/syntage/int_buro_*.sql. (No hay modelos de buró endbt-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
- 📊 Estado en vivo: dashboard "Data Processes" (Cloud Monitoring)
- 📦 Ingesta:
webhook_syntage·template-buro - 🧮 Lógica:
dbt-analytics(models/staging/syntage,models/intermediate/syntage)
Última actualización: 2026-06-21 · Si cambia el flujo o un modelo dbt, actualizar esta ficha en el mismo MR.