Enterprise data integration

Enterprise data integration platform

Twenty-plus enterprise systems that each held part of the truth, connected into governed data flows with reconciliation built in — across twelve business units and five countries.

Domain
Multi-country enterprise operations
Role
Integration & data analytics lead
Scale
12+ business units, 5+ countries
Disclosure
Client withheld
Integration pipeline with a reconciliation harness Each load runs extract, contract validation, transform and idempotent load into the target. A reconciliation harness compares row counts and control totals between source and target after every run; a mismatch raises an alert and holds the downstream publish rather than propagating bad data. Per scheduled run Extract Watermark / CDC Validate Schema + contract Transform Tested models Load Idempotent upsert Target Warehouse Reconciliation harness — runs after every load Row counts Source vs target Control totals Sum of key measures Late arrivals Restated records Result Pass → publish On mismatch Hold the publish · alert names the failing step · previous good version stays live Why it matters A silent partial load is worse than a visible failure — it is trusted
The load path, and the reconciliation harness that runs after every load. A mismatch holds the publish instead of propagating — the previous good version stays live until someone looks at it.

Confidentiality

Client name withheld under confidentiality. The figures below are the ones published on my professional profile. System names are given only where they are generic platform categories; nothing here identifies the organisation, its data or its people.

Context

A group operating across five countries and more than twelve business units, each running its own combination of ERP, student or operational information systems, CRM and finance tooling. Most of those systems were legitimate choices made locally at the time. None of them had been chosen with group-level reporting in mind.

The group needed to see itself as one organisation — comparable numbers across units, on a cadence that matched how often decisions were actually being made.

The business problem

Data moved between systems the way it usually does at this stage: scheduled exports, email attachments, and a shared drive that everybody had learned not to fully trust. Each unit could answer questions about itself. Nobody could answer the same question across all of them without a week of manual assembly, and the answer had a shelf life measured in days.

The deeper problem was not volume. It was that no one could state, for any given number, when it had last been correct or whether last night's load had actually completed.

Constraints

  • Source systems could not be replaced, and in several cases could not be modified at all — integration had to work with the APIs and extracts that existed.
  • Local business units retained ownership of their own operational data; a central mandate was not available as a shortcut.
  • Reporting already in use had to keep working throughout — there was no window in which the group could stop reporting.
  • Time zones across five countries meant there was no single overnight batch window that suited everyone.

Approach

The first decision was to treat every source as a contract rather than a connection. Before any pipeline was built, each source got a written schema and a set of expectations — which fields are authoritative, what identifies a record uniquely, what a legitimate change looks like, and how corrections arrive. Most of the eventual failures in an integration estate come from this being assumed rather than agreed.

The second decision was that loads must be idempotent and safely re-runnable. Re-running a load has to be boring. Once that is true, a failed run becomes an operational non-event rather than an incident requiring someone to work out what got half-written.

The third was the reconciliation harness in the diagram: after every load, row counts and control totals are compared between source and target, and late-arriving corrections are explicitly accounted for. On a mismatch the publish is held and the alert names the failing step. A silent partial load is worse than a visible failure, because a silent partial load gets trusted.

What I did

  • Profiled and documented each source system, and negotiated the data contract with the team that owned it.
  • Designed and built the pipeline estate — extraction via APIs, change capture and file drops, validation, transformation and idempotent loading.
  • Built the reconciliation harness and the alerting around it, including the hold-on-mismatch behaviour.
  • Staged the rollout unit by unit, running new and old reporting in parallel until the new numbers were trusted.
  • Wrote the runbooks and handed operational ownership to the internal team.

Systems and technologies

ERP and CRM platforms, operational information systems, and finance tooling on the source side. Talend, SSIS, Azure Data Factory and Apache Airflow for movement and orchestration; Python and SQL for transformation and validation; SQL Server and SAP HANA on the target side; Git and CI for version control and deployment.

Outcome

The measured result.

20+ enterprise systems integrated
150+ pipelines and workflows built
90% processing effort reduction
~30h manual work removed per week
~99% data availability for critical reporting
100+ users and stakeholders impacted

Lessons

What I would tell the next client.

  • The connector is never the hard part. Identity is — deciding what uniquely identifies a record when three systems each have their own answer.
  • Reconciliation is not a nice-to-have you add later. Without it, the first wrong number costs you the trust that took months to build.
  • Rolling out unit by unit with the old reporting still running is slower and correct. A big-bang cutover on data nobody trusts yet is how integration projects get cancelled.
Dat Tran, founder of EthanCorp

Dat TranEnterprise Data & AI Analytics Architect — the person behind EthanCorp.

All case studies

Have a data, analytics or automation problem that should not need another workaround?

Tell me what is breaking and what you have already tried. If EthanCorp is not the right fit, I will say so and point you somewhere better.

Response time
Within two business days
Based in
Ho Chi Minh City, Vietnam — working across Asia and remote