Quickstart stack
A real-time streaming stack: everything continuous
Every connection here is continuous or close to it. Snowplow collects, Kafka carries, Databricks and dbt model, and Hightouch activates within minutes. There is no daily batch anywhere in it.
10 tools · 12 connections
What it is for
Teams with engineering capacity and a need for speed build this: marketplaces, gaming, subscription businesses that act on behavior within the session or the hour.
It is the stack to read the freshness of each connection against: how fresh does each one need to be, and what does it cost to keep it that fresh.
Why each tool is here
-
OneTrust Consent Management
Consent management. It records what each visitor agreed to and passes that state on, so the tools downstream only collect and use what they are allowed to. Here it sends consent to both collectors.
-
GTM Server-side Server-side Tagging
Server-side tagging. Forwards events to Snowplow.
-
Snowplow Event Collection
Behavioral event collection, with validation and enrichment. Sends the validated event stream on to Kafka.
-
Google Analytics 4 Analytics & BI
Web analytics, fed from Snowplow.
-
Apache Kafka Event Streaming
Event streaming. Carries Snowplow events and Braze engagement to the lakehouse.
-
dbt Data Modeling
Data modeling. Turns the raw (bronze) tables into the modeled (gold) ones every 15 minutes.
-
Databricks Lakehouse
The lakehouse. Streams events in and serves audience and propensity models out.
-
Google Ads Advertising
Paid search. Receives Customer Match every 15 minutes.
-
Hightouch Reverse ETL
Reverse ETL, streaming. Syncs models to Braze on each change and to Google Ads every 15 minutes.
-
Braze Customer Engagement
Customer engagement. Receives profile updates in real time and sends engagement back to Kafka.
How data flows
The server container and Snowplow both receive consent from OneTrust. Snowplow streams validated events to Kafka and forwards a copy to GA4. Kafka streams into Databricks.
dbt reads the raw tables and writes modeled ones every 15 minutes. Databricks streams audience and propensity models to Hightouch, which updates Braze on each change and Google Ads every 15 minutes. Braze sends engagement back into Kafka.
Every connection
- OneTrust to GTM Server-side Consent signal · Real time, on each event
- OneTrust to Snowplow Consent state · Real time, on each event
- GTM Server-side to Snowplow Server-side events · Streaming, continuously
- Snowplow to Apache Kafka Enriched good stream · Streaming, continuously
- Snowplow to Google Analytics 4 Analytics forward · Streaming, on each event
- Apache Kafka to Databricks Structured Streaming ingest · Streaming, continuously
- Databricks to dbt Bronze tables · Streaming, continuously
- dbt to Databricks Gold models · Batch, every 15 minutes
- Databricks to Hightouch Audience & propensity models · Streaming, continuously
- Hightouch to Google Ads Customer Match · Batch, every 15 minutes
- Hightouch to Braze Profile sync · Real time, on each event
- Braze to Apache Kafka Engagement events · Streaming, on each event
When this is the wrong choice
- Your channels only act daily. Streaming infrastructure costs more to run than batch, and buys nothing if email goes out once a day.
- You have no platform engineers. Kafka and a lakehouse need owners on call.
Other quickstart stacks
Make this stack yours
Open it on the canvas, swap in the tools you use, and connect them. No sign-up until you want to keep it.
No credit card required. Free plan available.