Syntage · Tax Compliance (cumplimiento fiscal)
Del webhook de Syntage a las tablas de cumplimiento fiscal (opinión de cumplimiento y obligaciones). Streaming.
¿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… |
|---|---|---|
| Estatus / opinión de cumplimiento fiscal en análisis | solvento-data-prod.syntage.tax_compliance_body |
dbt-analytics → models/staging/syntage/stg_syntage__tax_compliance.sql |
| Obligaciones fiscales detalladas | solvento-data-prod.syntage.tax_compliance_obligations |
dbt-analytics → models/intermediate/syntage/int_syntage_tax_compliance.sql |
| Un registro de tax compliance "crudo" | solvento-data-prod.syntage.tax_compliance_body (RAW) |
Ingesta (sin lógica de negocio); ver "Paso a paso" |
Resumen
| Campo | Valor |
|---|---|
| Origen | Webhook de Syntage (evento de cumplimiento fiscal) |
| Patrón | Event-driven (Cloud Run → Pub/Sub → Dataflow) |
| Tabla RAW | solvento-data-prod.syntage.tax_compliance_body (+ tax_compliance_obligations) |
| Frecuencia | Streaming |
| Criticidad | 🟡 Media |
| Dueño | Martin (data eng) |
| Repos | webhook_syntage · api_syntage_handler · templates-dataflow |
Diagrama de linaje
graph LR
SYN[["📨 Syntage<br/>webhook tax compliance"]]
subgraph ing["Ingesta (sin lógica de negocio)"]
CR["Cloud Run<br/>webhook-syntage-inline-prod"]
TOP(["Pub/Sub<br/>tax-compliance-api-syntage-success"])
DF["Dataflow<br/>tax-compliance-api-multischema-prod-20251210-183338"]
RAW[("solvento-data-prod.syntage<br/>tax_compliance_body<br/>tax_compliance_obligations")]
end
subgraph cons["Consumo (dbt)"]
AN["Riesgo / cumplimiento<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 con la información de cumplimiento fiscal (opinión de cumplimiento / obligaciones).
- Cloud Run
webhook-syntage-inline-prod(webhook_syntage) recibe todos los eventos de Syntage y hace fan-out; para tax compliance publica al topictax-compliance-api-syntage-success(envTAX_COMPLIANCE_CHECK_TOPIC). Es el componente más crítico del ecosistema. - (Existe además el handler
tax-compliance-api-syntage-requests-handler-prodenapi_syntage_handler,CONTEXT=tax-compliance, que también publica atax-compliance-api-syntage-successcuando se requiere pedir detalle vía API.) - Dataflow
tax-compliance-api-multischema-prod-20251210-183338(templates-dataflow, carpetatax-compliance) consume la suscripcióntax-compliance-api-syntage-success-suby escribe en streaming asolvento-data-prod.syntage.tax_compliance_bodyytax_compliance_obligations.
Tablas que alimenta
| Tabla | Contenido | Job que la carga |
|---|---|---|
syntage.tax_compliance_body |
Cuerpo / cabecera del estatus de cumplimiento fiscal | tax-compliance-api-multischema-prod-20251210-183338 |
syntage.tax_compliance_obligations |
Obligaciones fiscales del contribuyente | tax-compliance-api-multischema-prod-20251210-183338 |
Consumo aguas abajo
- Riesgo / cumplimiento — staging, intermedios y dimensión en
dbt-analytics:models/staging/syntage/stg_syntage__tax_compliance.sql,models/intermediate/syntage/int_syntage_tax_compliance.sql,models/marts/core/syntage/dim_syntage_tax_compliance.sql.
Si falla 🛠️
Impacto: si cae webhook-syntage-inline-prod se afecta todo Syntage (no solo tax compliance). Mitigante: Syntage reintenta los webhooks; recuperar el servicio suele bastar.
| Síntoma | Dónde mirar | Acción |
|---|---|---|
| No llegan estatus de cumplimiento nuevos | Logs Cloud Run webhook-syntage-inline-prod (y handler si aplica) |
Si fue un deploy → rollback; si es saturación → subir instancias/memoria. Syntage reintenta |
| Llega al topic pero la RAW no avanza | Dataflow tax-compliance-api-multischema-prod-…: watermark y backlog de tax-compliance-api-syntage-success-sub |
Transitorios se recuperan solos; relanzar consumiendo la misma suscripción. Si hay duda, escalar |
| Datos "raros" en análisis de cumplimiento | Lógica en dbt-analytics (stg_syntage__tax_compliance) |
Revisar la transformación en el repo, no la ingesta |
Escalación: lógica SQL / Metabase → Diego · Airbyte → Gero · resto (webhook, handler, Dataflow) → Martin.
Enlaces
- 📊 Estado en vivo: dashboard "Data Processes" (Cloud Monitoring)
- 📦 Ingesta:
webhook_syntage·api_syntage_handler·templates-dataflow(tax-compliance) - 🧮 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.