SAP Concur, a leading provider of integrated travel, expense, and invoice management software, used Temporal to orchestrate complex database migrations from colocated infrastructure to AWS.
Challenges of Migrating Databases to the Cloud#
SAP Concur's legacy infrastructure lived in a colocated environment, limiting scalability and access to cloud services. Migrating to AWS involved moving a vast amount of data across numerous databases and subsystems. The challenges included:
- Managing Complexity: Coordinating data movement, schema updates, and configuration changes across 70+ subsystems with diverse data formats was daunting.
- Error Handling: Building error handling for such a large-scale, distributed system was critical for successful migration.
- Lack of Existing Tools: Traditional scripting approaches lacked the necessary state management and fault tolerance for this complex migration.
Why SAP Concur Chose Temporal#
Temporal is incredibly expressive. We can code things exactly as we need them.
SAP Concur evaluated various workflow orchestration tools and ultimately chose Temporal for the following reasons:
- Multi-Language & Polyglot Support: the ability to define Workflows using familiar programming languages, and multiple programming languages, simplified development, letting engineers get started more quickly.
- Expressive Workflows: Temporal provided the flexibility to build intricate workflows encompassing parallel tasks, error handling, and retries.
Temporal Workflows in Action#
SAP Concur built two critical tools using Temporal:
- Migration Tool: This tool orchestrated the migration of clients from colocated infrastructure to AWS. It facilitated data movement, schema updates, and configuration changes across all subsystems involved. Temporal's error handling ensured issues were addressed gracefully, and retries were automated.
- Database Control Plane: This tool manages SAP Concur's extensive fleet of Microsoft SQL servers. It automates tasks like managing availability groups and replicas, simplifying database administration. Temporal's ability to integrate with various APIs enabled building flexible workflows for these tasks.
Benefits of Using Temporal#
One of the lessons we learned was embracing failure. Using temporal, our subsystems and the developers specifically got more comfortable with failure, so that when things did fail, they learned to trust the system.
SAP Concur highlights several key benefits of using Temporal:
- Reduced Development Complexity: Temporal's intuitive Workflows significantly simplified development compared to building custom solutions.
- Increased Reliability: Built-in fault tolerance and error handling ensured migrations were robust and recoverable.
- Improved Developer Trust: Temporal's clear Workflow History allowed developers to diagnose issues efficiently and trust the Workflow to handle failures gracefully.
- Reduced Operational Costs: Temporal's efficiency in managing complex migrations potentially saved significant resources compared to alternative approaches.
A Successful Migration#
With Temporal, SAP Concur was able to reduce the pains and complexity of a massive database migration, and let developers gain better control over their journey to the cloud.