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
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
A record changes
HR updates an employee salary in Cloud SQL.
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
It lands untouched
It sits in a dated path. Nobody ever modifies it: if anything goes wrong later, it is reprocessed from here.
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
Dataform models it
Silver closes the previous salary version and opens the new one with an effective date: full history, no duplicates.
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
It becomes a KPI
The fact table recomputes the gap against the Eurostat market salary for that role.
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
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.