Managing data across multiple applications is challenging, especially when both systems continuously update client information. Our client faced a critical issue: synchronising massive volumes of billing data from an MSSQL-based application into a MySQL-powered invoice system without overwriting updated client records.
We engineered a robust data synchronisation architecture that ensured data accuracy, consistency, and performance optimisation, even with millions of records processed daily.
The client operates a billing platform where:
The core issue was data conflict and inconsistency
We designed a multi-layered data synchronisation pipeline using:
This ensured fast ingestion, conflict resolution, and zero data loss
| Steps | Process Details | Deliverable |
|---|---|---|
| Fast Data Ingestion (MSSQL → Stage Table) |
|
Purpose: Create a working dataset without impacting live systems |
| Intelligent Data Reconciliation (Invoice → Stage Table) |
|
Challenge solved: Prevents overwriting of updated client data |
| Real-Time Update Capture (Log Table) | During reconciliation:
|
Example: Client updates email → stored in Log Table |
| Backup Creation (Invoice App → Backup Table) |
|
Purpose: Data integrity and disaster recovery |
| Lightning-Fast Deployment (Stage → Invoice App) |
|
Result: Instant refresh with clean, accurate data |
| Final Sync (Log Table → Invoice App) |
|
|
| Cleanup Process |
|
Ensures safe processing and rollback capability
Captures live updates during long batch operations
Avoids overwriting updated client information
Reduces downtime to just seconds
Designed to handle millions of records daily
| Aspect | Before Solution | After Solution |
|---|---|---|
| Data Consistency | Frequent conflicts | Fully synchronized |
| Update Handling | Overwrites occurred | Field-level merging |
| Sync Speed | Slow & unreliable | Optimized pipeline |
| Real-time Updates | Lost during sync | Captured via Log Table |
| System Downtime | High | Near zero |
MSSQL (Billing App)
MySQL (Invoice App)
Custom ETL pipeline
Bulk operations + field-level comparison
Hybrid (Batch + Real-Time logging)