Flujo General de Consumo
Este diagrama muestra cómo los datos entran al sistema de data engineering de Solvento desde diversas fuentes externas e internas.
Diagrama de Flujo Completo
graph TB
subgraph fuentes["Fuentes Externas"]
APIs[APIs]
SyntageWebhooks[Webhooks de Syntage]
TokuWebhooks[Webhooks de Toku]
S3[S3 Bucket]
end
subgraph bases_datos["Bases de Datos y SaaS"]
LoanPro[(LoanPro<br/>MySQL)]
BackendSolvento[(Backend Solvento<br/>PostgreSQL)]
HubSpotCRM[HubSpot<br/>CRM]
end
subgraph ingesta["Capa de Ingesta"]
CloudRunAPI[Cloud Run<br/>API Handler]
CloudRunSyntage[Cloud Run<br/>Syntage Handler]
CloudRunToku[Cloud Run<br/>Toku Handler]
DatastreamSvc[Datastream<br/>Ventanas de 15 min]
AirbyteSvc[Airbyte<br/>Replicación]
Glue[AWS Glue<br/>ETL]
end
subgraph mensajeria["Mensajería"]
PubSub[Pub/Sub<br/>Topics]
end
subgraph procesamiento["Capa de Procesamiento"]
Dataflow[Dataflow<br/>Templates]
CloudRunFinal[Cloud Run<br/>Final Processor]
end
subgraph almacenamiento["Capa de Almacenamiento"]
DataProd[solvento-data-prod<br/>BigQuery Raw]
end
%% Flujos APIs
APIs -->|"HTTP"| CloudRunAPI
CloudRunAPI -->|"Publica eventos"| PubSub
PubSub -->|"Consume"| Dataflow
PubSub -->|"Consume"| CloudRunFinal
Dataflow -->|"Escribe raw"| DataProd
CloudRunFinal -->|"Escribe raw"| DataProd
%% Flujo Datastream - LoanPro (ventanas 15 min)
LoanPro -->|"CDC Binlog"| DatastreamSvc
DatastreamSvc -->|"Flush cada 15 min"| DataProd
%% Flujo Airbyte - Backend Solvento y HubSpot
BackendSolvento -->|"Replicación CDC"| AirbyteSvc
HubSpotCRM -->|"Replicación API"| AirbyteSvc
AirbyteSvc -->|"Escribe datos raw"| DataProd
%% Flujo S3
S3 -->|"Lee datos"| Glue
Glue -->|"Escribe datos raw"| DataProd
%% Flujo Webhooks Syntage
SyntageWebhooks -->|"HTTP POST"| CloudRunSyntage
CloudRunSyntage -->|"Alimenta colas"| PubSub
%% Flujo Webhooks Toku
TokuWebhooks -->|"HTTP POST"| CloudRunToku
CloudRunToku -->|"Alimenta colas"| PubSub
Descripción de Flujos
1. Ingesta desde Fuentes Externas
- APIs: Son explotadas por Cloud Run que ingesta mensajes a Pub/Sub, leídos por Dataflow o Cloud Run, finalizando en BigQuery (data-prod)
- S3: ETL con Glue hacia BigQuery (data-prod)
- Webhooks de Syntage: Cloud Run alimenta múltiples colas Pub/Sub, leídas por templates de Dataflow hacia BigQuery (data-prod)
- Webhooks de Toku: Cloud Run publica a Pub/Sub, procesados por Dataflow y escritos en BigQuery (data-prod)
2. Ingesta desde Bases de Datos y SaaS
- LoanPro (MySQL): Replicado mediante Datastream (CDC vía binlog) con flush a BigQuery cada 15 minutos
- Backend Solvento (PostgreSQL): Replicado mediante Airbyte (CDC incremental) hacia BigQuery (data-prod)
- HubSpot (CRM): Replicado mediante Airbyte (API REST) hacia BigQuery (data-prod)
3. Procesamiento Intermedio
- Pub/Sub: Bus de eventos que distribuye mensajes a Dataflow templates y Cloud Run
- Cloud Run: Procesa requests HTTP (APIs, webhooks) y publica a Pub/Sub
- Dataflow: Consume mensajes de Pub/Sub usando templates y escribe datos raw a BigQuery (data-prod)
4. Almacenamiento Raw
- BigQuery (data-prod): Destino único para todos los datos raw
5. Transformación a Depurado
- dbt y Dataform: SOLO estas tecnologías transforman datos de
solvento-data-prodhaciasolvento-adv-analytics-prod
Patrones de Flujo
Flujo APIs
Flujo Webhooks Syntage
Webhooks Syntage → Cloud Run → Pub/Sub (múltiples colas) → Dataflow Templates → BigQuery (data-prod)
Flujo Webhooks Toku
Flujo S3
Flujo Datastream (LoanPro)
Flujo Airbyte (Backend Solvento + HubSpot)
Backend Solvento (PostgreSQL) → Airbyte CDC → BigQuery (data-prod)
HubSpot (CRM) → Airbyte API → BigQuery (data-prod)
Flujo Transformación a Depurado
Proyectos GCP Involucrados
solvento-data-prod: Proyecto de datos raw — todo ingresa aquí primerosolvento-adv-analytics-prod: Proyecto de datos depurados — resultado de ETL desde data-prodsolvento-risk-analytics-prod: Proyecto de datos de riesgo — puede leer de data-prod o adv-analytics-prod