FAVFrancisco Álvarez Varas

How I work

An end-to-end data pipeline, piece by piece

This is the architecture I apply in my projects: from sources to dashboard, with data quality, orchestration and infrastructure as code. Click a piece to see what it does and where I have built it. Then remove it to see what breaks downstream.

Pick a version

The platform I would build today on Google Cloud for a mid-sized company: change capture from operational databases, APIs and files landing in Cloud Storage, events through Pub/Sub, Dataflow in batch and streaming, layered BigQuery with Dataform, and consumption from Looker Studio, Vertex AI, Sheets and an API. Underneath, what keeps it alive: Composer, Dataplex, IAM, Terraform and observability.

Try a scenario
1Sources2Ingestion3Landing and processing4Bronze and state5Silver and gold · Dataform6Consumption
Operational databasesCloud SQL · AlloyDB
SaaS and APIsSalesforce · Search Console · Eurostat
App and device eventsmobile · web · sensors
Business filesExcel · CSV · SFTP · Drive
Datastream · CDCchange capture without loading the source
Cloud Functions · extractorsAPI → JSON in Cloud Storage
Pub/Subtopics · subscriptions · retention
Cloud Run Jobs · filesSFTP and Drive → Cloud Storage
Dataproc Serverless · PySparklarge historical backfills
Cloud Storage · landingimmutable raw · partitioned by date
Dataflow batchApache Beam · parsing and validation
Dataflow streamingBeam · windows · keyed state
BigQuery · bronzeraw tables partitioned and clustered
NLP enrichmentCloud Run + Vertex AI · sentiment and topics
Firestore · live statereactive documents for apps
BigQuery · silverDataform · cleaning, types, keys, SCD
Quality assertionsDataform assertions · uniqueness · nulls · ranges
BigQuery · gold · martsfacts, dimensions and KPIs with definitions
BigQuery ML · featuresfeature tables · SQL baseline
Looker Studiodashboards with actionable thresholds
Vertex AI · model and endpointtraining · registry · prediction · SHAP
Connected Sheets and exportsBigQuery → Sheets for finance
Cloud Run · APIFastAPI for apps and operations
Cloud Composer · AirflowDAGs · dependencies · retries · SLAs
IAM · Secret Manager · VPC Service Controlsleast privilege · secrets · perimeter
Dataplex · catalogue, lineage and PIIwhat each table means and who owns it
Terraform · Cloud Build · Artifact Registryinfrastructure and deployments as code
Cloud Logging · Monitoring · Billinglogs, alerts, budgets and runbooks
  • Removed piece
  • No data or stale
  • Incomplete data
  • Unreliable data
  • Latent risk

The journey of one record

Follow a single change from start to finish. Each step lights up its piece in the diagram.

  1. 1
    A record changes

    HR updates an employee salary in Cloud SQL.

  2. 2
    Datastream captures it

    The change is read from the transaction log and written as Avro to Cloud Storage in under a minute, without querying the database.

  3. 3
    It lands untouched

    It sits in a dated path. Nobody ever modifies it: if anything goes wrong later, it is reprocessed from here.

  4. 4
    Dataflow validates it

    That night the batch job parses the Avro, checks the schema and writes the row to BigQuery bronze. If it fails, it goes to the rejects table with the reason.

  5. 5
    Dataform models it

    Silver closes the previous salary version and opens the new one with an effective date: full history, no duplicates.

  6. 6
    It passes the assertions

    Unique key, salary within range, employee present in the dimension. If anything fails, gold is left alone and an alert fires.

  7. 7
    It becomes a KPI

    The fact table recomputes the gap against the Eurostat market salary for that role.

  8. 8
    Vertex AI re-scores

    The monthly prediction updates the employee's flight risk and SHAP explains that the salary gap now weighs less than before.

  9. 9
    The manager sees it

    In Looker Studio the employee drops off the risk list. Same figure in the finance sheet, because they read the same gold view.

The layers, one by one

What each stage is, why it exists, which services build it and where I have built it.

1 · Sources

What it is
Operational databases in Cloud SQL, SaaS behind APIs, app and sensor events, and business files.
Why it exists
Each source fails differently: a database saturates, an API changes format, a file arrives late. That is why each gets its own ingestion method.
Services
Cloud SQLAlloyDBAPIs RESTSFTPDrive
Where I have done it
HR, Slack, Eurostat and Adzuna in the thesis; GPS, weather and air in CloudRISK; public catalogues in the price monitor.

2 · Ingestion

What it is
Extractors that move data without transforming it: Datastream captures changes, Cloud Functions call APIs, Pub/Sub receives events and Cloud Run Jobs collect files.
Why it exists
Separating extraction from transformation lets you retry without losing anything and swap a source without touching the rest.
Services
DatastreamCloud FunctionsPub/SubCloud Run JobsSecret Manager
Where I have done it
Walker as a Cloud Run Job and three Pub/Sub topics in CloudRISK; Eurostat and Adzuna extractors in the thesis.

3 · Landing and processing

What it is
Everything lands raw and immutable in Cloud Storage. Dataflow batch parses and validates; Dataflow streaming applies rules continuously; Dataproc Serverless reprocesses history with PySpark.
Why it exists
Storing raw data before touching it is what allows reprocessing when something goes wrong, and processing separately allows scaling without touching the warehouse.
Services
Cloud StorageDataflowApache BeamDataproc Serverless
Where I have done it
Stateful Beam pipeline with anti-cheat in CloudRISK; Cloud Storage landing in the thesis.

4 · Bronze and state

What it is
BigQuery bronze keeps untransformed history; Firestore keeps the present that apps read; a service enriches text with Vertex AI.
Why it exists
Analytics and operations have opposite needs: cheap bulk volume versus instant reads. One store for each.
Services
BigQueryFirestoreCloud RunVertex AI
Where I have done it
Normalised bronze and Slack sentiment in the thesis; balances and map in Firestore in CloudRISK.

5 · Silver and gold with Dataform

What it is
Versioned SQL models: silver cleans and keys, assertions block what fails, gold serves facts and KPIs, and feature tables feed the model.
Why it exists
This is the layer where a single truth is defined. Every metric has a written owner, formula and threshold, and tests guarantee it arrives right.
Services
DataformBigQueryBigQuery ML
Where I have done it
Gold views, KPI catalogue and assertions in the thesis; dbt models every five minutes in Air quality.

6 · Consumption

What it is
Looker Studio to decide, Vertex AI to anticipate, Connected Sheets for finance and a Cloud Run API for the product.
Why it exists
Everyone reads the same gold layer. There are not three versions of the KPI depending on who asks.
Services
Looker StudioVertex AIConnected SheetsCloud Run
Where I have done it
Command centre and SHAP model in the thesis; FastAPI backend in CloudRISK; Gemini agent in the Student Hub.

Cross-cutting

What it is
Composer orchestrates, Dataplex catalogues, IAM and Secret Manager protect, Terraform and Cloud Build deploy, Logging and Billing watch.
Why it exists
They move no data at all, but they are the difference between a demo and a platform that survives its first month.
Services
Cloud ComposerDataplexIAMTerraformCloud BuildCloud Monitoring
Where I have done it
Single-apply Terraform and CI/CD in CloudRISK and the Student Hub; catalogue and PII in Dataplex, runbook and costs in the thesis.