Skip to content
All case studies

CS-01 — Data platforms · Cloud architecture · Automation & AI

Multi-tenant modernisation from PostgreSQL to Snowflake

Integration of each tenant's operational PostgreSQL data from a pricing platform into Snowflake, maintaining isolation between tenants and automating the onboarding of new clients.

My role
Senior Data Engineer (Wizeline). Ander decided the architecture to be implemented and designed the infrastructure together with the OPS team.
Period
Not documented
Disclosure
Anonymised details
Technologies
SnowflakePostgreSQLC#.NETAWS FargatePythonSQLAWS LambdaAmazon S3AWS Step FunctionsApache AirflowAmazon EventBridge
Last reviewed
13 November 2026

Context

PricePro is a multi-tenant enterprise pricing platform for fuel retail (prices, competition, strategies, margins, volumes). Each tenant has its operational data in a logically isolated PostgreSQL environment. Analytics needed to integrate that data into Snowflake without breaking isolation between tenants and in a scalable way.

Challenges

  1. 01Maintaining each tenant's logical isolation in the analytics layer as well.
  2. 02Onboarding new tenants without extensive manual intervention (databases, schemas, permissions, integration).
  3. 03Managing schema evolution between the operational source and Snowflake.
  4. 04Migrating historical data and validating consistency between source and target.

Solution & architecture

Archiving of data from PostgreSQL through C# processes running on AWS Fargate that generate JSON files, which are then ingested into Snowflake through stages with orchestrated loading. Ingestion and transformation pipelines from PostgreSQL into per-tenant Snowflake structures, orchestrated with AWS services (Lambda, S3, Step Functions, events) and Airflow, together with provisioning automation: tenant initialisation, creation of data structures, database and schema configuration, required permissions and continuous synchronisation.

OPERATIONALARCHIVINGSNOWFLAKECONSUMERSTenant A (PostgreSQL)Tenant B (PostgreSQL)New tenantFargate jobs (C#)JSON filesTenant provisioningOrchestrated stageTenant schemasReportsServices / ML
Multi-tenant PostgreSQL → Snowflake (simplified)

Key decisions

D-01

JSON export with Fargate tasks and ingestion through Snowflake stages

Decouples extraction from PostgreSQL from loading into Snowflake; Snowflake ingests the files from its stage in an orchestrated way.

D-02

Per-tenant data structures in Snowflake

Keep the same logical isolation in the analytics layer that exists in the operational source.

D-03

Automated tenant provisioning

Client onboarding is recurring; automating it avoids error-prone manual steps.

Trade-offs

Not documented yet

Results

New tenants are integrated into the analytics platform through automation instead of extensive manual configuration.

Lessons learned

Not documented yet

Ander decided the architecture of this modernisation and designed the infrastructure with the OPS team. He also developed the C# archiving of data from PostgreSQL with AWS Fargate. He has also worked on: understanding the existing PostgreSQL schemas, designing ingestion mechanisms, developing pipelines and transformations, supporting tenant-aware database structures, managing schema evolution, validating consistency, optimising ingestion, supporting the historical migration and automating tenant onboarding.

Internal details (tenant identifiers, resource names, accounts) are not published.

Ask about this case study

Ask about this case studyAI · answers from an approved knowledge base · not Ander in real time

Questions here are answered with the case study “Multi-tenant modernisation from PostgreSQL to Snowflake” as context.

Enter to send · Shift + Enter for a new line0/1200