Skip to content

Arquitectura Completa

Vista de alto nivel de la arquitectura completa de data engineering de Solvento, mostrando todas las capas y componentes.

Diagrama de Arquitectura Completa

graph TB
    subgraph externos["Fuentes Externas"]
        Webhooks[Webhooks<br/>Syntage + 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"]
        CloudRun[Cloud Run<br/>Webhook / API Handler]
        DatastreamSvc[Datastream<br/>LoanPro — ventanas 15 min]
        AirbyteSvc[Airbyte<br/>Solvento + HubSpot]
        Glue[AWS Glue<br/>S3 ETL]
        PubSub[Pub/Sub<br/>Bus de Eventos]
    end

    subgraph procesamiento["Capa de Procesamiento"]
        Dataflow[Dataflow<br/>ETL Pipelines]
        DBT[dbt<br/>Transformaciones]
        Dataform[Dataform<br/>Transformaciones]
        ConsistencyRun[Cloud Run<br/>Consistencia]
    end

    subgraph almacenamiento["Capa de Almacenamiento"]
        DataProd[BigQuery<br/>solvento-data-prod<br/>RAW]
        AdvAnalytics[BigQuery<br/>solvento-adv-analytics-prod<br/>DEPURADO]
        RiskAnalytics[BigQuery<br/>solvento-risk-analytics-prod<br/>RIESGO]
    end

    subgraph visualizacion["Capa de Visualización"]
        Metabase[Metabase Cloud<br/>solvento.metabaseapp.com]
    end

    subgraph orquestacion["Capa de Orquestación"]
        Scheduler[Cloud Scheduler]
    end

    %% Fuentes externas → Cloud Run → Pub/Sub
    Webhooks --> CloudRun
    S3 --> Glue

    %% Bases de datos → herramientas de replicación
    LoanPro -->|"CDC Binlog<br/>flush 15 min"| DatastreamSvc
    BackendSolvento -->|"Replicación CDC"| AirbyteSvc
    HubSpotCRM -->|"Replicación API"| AirbyteSvc

    %% Herramientas de ingesta → data-prod
    CloudRun --> PubSub
    DatastreamSvc --> DataProd
    AirbyteSvc --> DataProd
    Glue --> DataProd
    PubSub --> Dataflow
    Dataflow --> DataProd

    %% ETL: data-prod → adv-analytics (SOLO dbt y Dataform)
    DataProd --> DBT
    DataProd --> Dataform
    DBT --> AdvAnalytics
    Dataform --> AdvAnalytics

    %% Consistencia sobre datos depurados
    AdvAnalytics --> ConsistencyRun
    ConsistencyRun --> AdvAnalytics

    %% Risk puede leer de ambos proyectos
    DataProd -.->|"Lee raw"| RiskAnalytics
    AdvAnalytics -.->|"Lee depurado"| RiskAnalytics

    %% Visualización
    AdvAnalytics --> Metabase

    %% Orquestación
    Scheduler --> CloudRun

Proyectos GCP y Capas de la Arquitectura

Proyectos GCP

La arquitectura se organiza en tres proyectos GCP:

  1. solvento-data-prod: Almacena todos los datos raw (sin procesar)
  2. solvento-adv-analytics-prod: Almacena datos depurados y transformados (resultado de ETL)
  3. solvento-risk-analytics-prod: Almacena datos de riesgo (puede leer de ambos proyectos)

Filosofía: Todo ingresa primero a solvento-data-prod como raw. Los procesos ETL transforman y escriben a solvento-adv-analytics-prod. solvento-risk-analytics-prod puede consumir de ambos según necesidad.

Capas de la Arquitectura

1. Fuentes de Datos

  • APIs externas y Webhooks (Syntage, Toku): entrada vía Cloud Run → Pub/Sub
  • LoanPro (MySQL): replicado por Datastream con flush cada 15 minutos
  • Backend Solvento (PostgreSQL): replicado por Airbyte (CDC)
  • HubSpot (CRM): replicado por Airbyte (API)
  • S3: transferido por AWS Glue

2. Capa de Ingesta

  • Cloud Run: recibe webhooks/APIs y publica a Pub/Sub
  • Pub/Sub: bus de eventos asíncrono
  • Datastream: CDC de LoanPro → BigQuery (ventanas de 15 min)
  • Airbyte: replicación de Backend Solvento y HubSpot → BigQuery
  • AWS Glue: ETL de S3 → BigQuery

3. Capa de Procesamiento

  • Dataflow: consume Pub/Sub y escribe a solvento-data-prod
  • dbt: transforma de data-prodadv-analytics-prod y risk-analytics-prod
  • Dataform: transformaciones complementarias hacia adv-analytics-prod
  • Cloud Run (Consistencia): ajustes sobre datos depurados

4. Capa de Almacenamiento

  • solvento-data-prod: datos raw
  • solvento-adv-analytics-prod: datos depurados
  • solvento-risk-analytics-prod: data products de riesgo

5. Capa de Visualización

  • Metabase Cloud: consume de solvento-adv-analytics-prod para analíticas internas y dashboards embebidos

Flujos Principales

Flujo Webhooks (Syntage + Toku)

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

Flujo Datastream (LoanPro)

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

Flujo Airbyte (Backend Solvento + HubSpot)

Backend Solvento / HubSpot → Airbyte → BigQuery (data-prod)

Flujo S3

S3 → AWS Glue → BigQuery (data-prod)

Flujo de Transformación

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

Proyectos GCP

  • solvento-data-prod: datos raw — todo ingresa aquí primero
  • solvento-adv-analytics-prod: datos depurados (solo dbt y Dataform escriben aquí)
  • solvento-risk-analytics-prod: datos de riesgo (puede leer de ambos proyectos)

Ver filosofía completa de proyectos GCP →


Consulta las secciones específicas para más detalles sobre cada componente.