An open-source architecture contribution to Capital One’s DataComPy project that diagnosed a process-global assumption defect in Spark Connect sessions. Resolved via object-level runtime dispatch, credited and adopted upstream by Capital One in PR #552.
Role
Category
Data Engineering
Engineering discipline
UPSTREAM ADOPTED · PR #552

Patrick Ribbsaeter · Independent open-source contribution
Engineering objective
When SparkSQLCompare received an already-created Connect session, expression selection relied on process-global Spark state (SPARK_CONNECT_MODE_ENABLED) rather than the actual DataFrame or Column object. As a result, classic Spark expressions could be constructed against Spark Connect DataFrames, causing runtime failures across remote cluster and notebook environments.
Constraints
Architecture
Approach
Diagnosed root cause: SPARK_CONNECT_MODE_ENABLED assumption fails when Connect sessions originate outside the library.
Engineered runtime-aware dispatch (PR #548) that resolves Spark functions and Window implementations directly from the target DataFrame or Column.
Replaced direct classic-function imports throughout SparkSQLCompare with object-level runtime dispatch.
Unified compatibility boundaries across array, boolean, numeric, and string comparator implementations.
Capital One maintainers integrated the object-dispatch approach into upstream PR #552, explicitly crediting @patrickswedish / #548 for the design and root cause diagnosis.
Capital One extended the PR with comprehensive regression coverage, Connect validation, and green CI across distributed test matrices.
Workflow
Technical validation
Observable engineering evidence. Discipline: UPSTREAM ADOPTED · PR #552
Upstream PR
Capital One #552 · open, mergeable
Original PR
#548 · root cause & dispatch
Maintainer credit
@patrickswedish credited in PR #552
Upstream CI
100% checks passing
Comparator families
4 covered
Spark runtimes
Classic + Connect
Public evidence
Outcome
Capital One upstream PR #552 adopted the runtime object dispatch architecture, explicitly crediting @patrickswedish / #548
Root cause of process-global Spark Connect defect diagnosed and resolved
Spark Classic and Spark Connect compatibility unified through one shared runtime-dispatch boundary
Array, boolean, numeric, and string comparator paths updated consistently
100% passing CI on Capital One upstream repository with full regression coverage
Enterprise-grade reliability established for banking and FinTech distributed data reconciliation
Technologies
Next engineering system
VERCEL AI SDK · OPEN SOURCE
Have an ambitious AI system to build?
I work across AI architecture, product engineering, private inference, automation, SaaS infrastructure, and production hardening.