Establish the baseline
Use current production data as the trusted reference against which candidate pipeline output is validated.
Selected Engineering Work · Project 01
Validating business-logic changes before production release.
Designed and built an end-to-end validation framework to compare output produced by code-freeze pipeline logic against the current production data baseline, helping identify expected and unexpected impacts before release.
The challenge
During code freeze, pipeline logic could include added, removed or modified business rules. Before those changes reached production, the resulting data needed to be compared with the current production baseline.
The validation process had to expose both structural and data-level differences while making it possible to separate intended changes from unexpected discrepancies that could indicate a regression or data-quality problem.
INT → BIGINT.Validation architecture
The framework brought both sides into a consistent comparison process, aligned records, evaluated schema and data differences, and persisted structured results for review.
Engineering approach
The implementation evolved from SQL-based comparison logic toward PySpark and used configuration-driven rules to keep validation behavior separate from the processing code.
Use current production data as the trusted reference against which candidate pipeline output is validated.
Execute the code-freeze version containing newly added, removed or modified business logic.
Create surrogate keys to establish a reliable basis for comparing corresponding records.
Detect schema drift and evaluate differences at row and column level. The comparison logic started in SQL and later moved to PySpark.
Drive filtering and validation behavior from a configuration table rather than embedding every condition in the processing logic.
Persist structured results in Delta tables and surface them through dashboards for downstream review.
Key engineering decisions
Record comparison requires stable identity. Surrogate keys were introduced to align corresponding records before row- and column-level checks were applied.
The comparison logic was initially implemented in SQL and later moved to PySpark, keeping the solution aligned with the Databricks processing model.
A configuration table separated validation rules from processing logic, making the framework easier to adapt as comparison requirements changed.
Outcome
The framework provided a repeatable way to assess the impact of business-logic changes before release, detect unexpected schema and data-level differences, filter results using configurable rules, and make validation findings available through Delta tables and dashboards.