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
- 01Maintaining each tenant's logical isolation in the analytics layer as well.
- 02Onboarding new tenants without extensive manual intervention (databases, schemas, permissions, integration).
- 03Managing schema evolution between the operational source and Snowflake.
- 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.
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
Questions here are answered with the case study “Multi-tenant modernisation from PostgreSQL to Snowflake” as context.