Skip to content

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-prod hacia solvento-adv-analytics-prod

Patrones de Flujo

Flujo APIs

APIs → Cloud Run → Pub/Sub → Dataflow/Cloud Run → BigQuery (data-prod)

Flujo Webhooks Syntage

Webhooks Syntage → Cloud Run → Pub/Sub (múltiples colas) → Dataflow Templates → BigQuery (data-prod)

Flujo Webhooks Toku

Webhooks Toku → Cloud Run → Pub/Sub → Dataflow Templates → BigQuery (data-prod)

Flujo S3

S3 → Glue → BigQuery (data-prod)

Flujo Datastream (LoanPro)

LoanPro (MySQL) → Datastream CDC → flush cada 15 min → BigQuery (data-prod)

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

BigQuery (data-prod) → dbt/Dataform → BigQuery (adv-analytics-prod)

Proyectos GCP Involucrados

  • solvento-data-prod: Proyecto de datos raw — todo ingresa aquí primero
  • solvento-adv-analytics-prod: Proyecto de datos depurados — resultado de ETL desde data-prod
  • solvento-risk-analytics-prod: Proyecto de datos de riesgo — puede leer de data-prod o adv-analytics-prod

Ver filosofía completa de proyectos GCP →