The Challenges
- Client depended on third-party ETL tools, which meant paying for them and being limited by what they would do.
- That dependency hurt most on projects with complex data mapping rules, which is exactly where the tools were needed and exactly where they fell short.
- Every project approached migration its own way, so nothing carried over from one to the next and estimates were guesses.
- Source data sits in both relational and NoSQL databases, and connecting to each one was its own piece of work.
- Nested and irregular structures broke straightforward field-to-field mapping.
- Designing a migration required people who could write the pipeline, which put a small group of specialists on the critical path of every project.
- A designed workflow is worthless if it does not become something that actually runs.
- Jobs depend on each other and have to be sequenced, scheduled and run in parallel where possible.
- When a migration goes wrong, someone has to be able to see exactly what happened. Without that, the failure cannot be explained to a client.
- Client wanted the result to be a product it could sell later, not only an internal tool, so it had to be built to a standard beyond internal use.

