← Back to portfolio
project 2024-12

Near Real-Time Data Ingestion System

Built a near real-time data ingestion system, reducing compute cost by ~60% and simplifying architecture.

Pub/SubCloud FunctionsBigQueryTerraform
~60% cost reduction
NRT latency

Firestore to BigQuery NRT Connector

Near-real-time data sync processing 2M+ records/day at 99.9% reliability with 60-70% compute cost reduction.

Overview

Built a serverless, event-driven pipeline that syncs Firestore document changes to BigQuery in near-real-time. The system uses Eventarc to capture Firestore triggers, Cloud Functions for transformation, and Pub/Sub dead-letter queues for fault tolerance, all provisioned via Terraform.

This replaced a batch-based approach that had hours of latency and significantly higher compute costs.

Architecture

flowchart TD
    A[("Firestore\nCDC")] --> B[Eventarc]
    B --> C["Cloud Function\ntransform + validate"]
    C --> D[("BigQuery\nstreaming insert")]
    C -->|on failure| E["Pub/Sub DLQ"]
    E --> F["Cloud Function\nretry handler"]
    F --> D

Tech Stack

LayerTechnology
SourceFirestore (document DB)
TriggerEventarc
ProcessingCloud Functions (Python)
StorageBigQuery
Error HandlingPub/Sub Dead Letter Queue
IaCTerraform

Key Metrics

MetricValue
Throughput2M+ records/day
Reliability99.9%
Compute cost reduction60-70% vs. batch approach
LatencyNear-real-time (seconds)

Challenges & Decisions

Why serverless over Dataflow?

Dead-letter queue for fault tolerance

Terraform for reproducibility

What I Learned


Built at Wayfair India · Dec 2024 – Present