Multi-Source Digital Lending Data Platform
Production multi-source data platform ingesting core banking, sharia-compliant, operational, and portfolio risk data from 5+ partner banks into Aurora PostgreSQL and Amazon Redshift, powering credit risk, portfolio analytics, and Power BI dashboards for a digital lending business
Tech Stack
Problem Statement
A digital lending platform needed a unified data warehouse aggregating core banking data from multiple partner institutions - including conventional banks, sharia-compliant partners, an operational data source, and a portfolio risk system - across heterogeneous PostgreSQL and MongoDB sources into a single warehouse for credit risk models, portfolio analytics, and executive dashboards.
Technical Approach
Built a layered data platform: daily pg_dump/mongodump to S3 Bronze landing zone, Airflow-orchestrated restore into Aurora PostgreSQL staging databases, central federation schema (using Foreign Data Wrappers across all staging DBs), and Amazon Redshift with schema-per-source load strategies. Operational partner data integrated via Airbyte CDC (24h cadence). Data modeling layered as Transient Staging, Core Canonical Data Model, and Semantic Layer with Data Contracts. All Airflow pipelines run on AWS EKS.
Key Results
- →4-source ingestion: conventional banking partners (5 banks), sharia-compliant partners, operational data source (Airbyte CDC), portfolio risk source (FDW direct)
- →Aurora PostgreSQL cluster as central federation hub - integration schema aggregates all sources via FDW into a single integration point
- →Amazon Redshift warehouse with per-source schemas and mixed load strategies (full refresh, incremental delete+reload, Parquet COPY)
- →End-to-end data modeling: Transient Staging to Core Canonical Data Model to Semantic Layer plus Data Contracts
- →Atomic table swap pattern for partner restores - zero-downtime daily promotion from staging to production schema
- →Consumption layer serving Power BI dashboards, credit risk ML models, and portfolio analytics teams
- →In progress - Batch Incremental: Replacing full dumps with incremental batch processing, covering both immutable (append-only) and mutable (updated records) data patterns using log-based streaming logic
- →In progress - Real-time CDC: Implementing Debezium for Change Data Capture, streaming changes via Redpanda/Kafka, with Apache Flink handling transformations downstream
- →Serves 5 Ethiopian partner banks