Replay 2023 - Lift and Shift to Temporal at Turo

Temporal eliminated message delays, improved workflow reliability, and reduced our task backlog

Turo logo - light

Industry

Retail

Use Case

Booking

Company Size

250-2000

SDK

Java

Temporal

Cloud

Lift and Shift to Temporal at Turo

NOTE: This is a summary of a talk given by the Turo team at Replay 2023.

Turo is a car sharing marketplace where users can book any car they want, wherever they want, whenever they want. Turo has been experiencing incredible growth, and their legacy scheduling system, Quartz, could not keep up with the demand. Quartz suffered from misfires, stuck jobs, and death loops, causing scheduling unreliability.

After evaluating several platforms, Turo chose Temporal because it met all of their requirements around scale, fault tolerance, cost-effectiveness, and a developer experience.

Their initial approach was to decouple Quartz’s job firing from execution by introducing queues everywhere. However, this only led to marginal improvements and increased complexity. Turo then decided to take a step back and look for a platform that would better meet their needs.

After evaluating several platforms including Dinin, AWS Step Functions, Conductor, and Eventbrite Scheduler, the team chose Temporal because it met several key challenges they wanted to address with a new workflow system:

  • Scale to handle Turo’s massive growth
  • Fault tolerance to ensure reliable job execution
  • Cost-effectiveness
  • A fully managed platform to avoid managing their own infrastructure
  • Concurrency control to prevent race conditions
  • The ability to edit or signal workflows
  • A positive developer experience

A phased Implementation

Turo decided to implement Temporal in phases. The first phase focused on two critical jobs: start trip and trip extension reminder. They identified these two jobs as good candidates because they had a history of challenges and were based on different anchors in the reservation lifecycle.

The success of the MVP led them to commit to fully retiring Quartz by the end of the year. To achieve this goal, Turo decided to use a lift-and-shift strategy to migrate their existing Quartz jobs to Temporal. This involved creating scheduled workflows in Temporal that mirrored the functionality of the Quartz jobs.

The team acknowledges that this lift-and-shift approach was not ideal, but it allows them to quickly retire Quartz and meet their short-term goal. In the long-term, Turo plans to refactor their workflows to take full advantage of Temporal.

Key Takeaways

Key takeaways that Turo learned from this process:

  • Planning is important. Taking the time to understand your current state and define your goals will help you choose the right approach.
  • Having a focused goal will help you stay on track. Their goal of retiring Quartz by the end of the year helped them make decisions throughout the process.
  • Incremental changes are better than wholesale adoption. Their platform is not ready for a complete overhaul, so they are making incremental improvements by migrating critical workflows to Temporal first.
  • Community engagement is valuable. Turo found the Temporal community to be vibrant and passionate, and they were able to collaborate with Airbnb to learn from their experience.

Replay 2023 Video

This summary was pulled from a talk that the Turo team provided at Replay 2023. You can check out the video below or see all the videos from the show on our Replay 2023 video page.

Build invincible apps

Ready to learn why companies like Snap, Alaska Airlines, and Nvidia trust Temporal as their secure and scalable way to build and innovate?