"Temporal offers a novel approach to decomposing our monolith, which aligns perfectly with our goal of transitioning to a microservices architecture." – Josh Wickham, Principal Software Engineer at Turo.
Turo, the peer-to-peer car-sharing platform, simplifies its development processes and enhances engineering velocity by adopting Temporal.
Challenges Before Temporal#
Prior to adopting Temporal, Turo relied heavily on a large, monolithic Java application that had accumulated millions of lines of code over 12 years.
This monolith presented several challenges:
- Technician debt and Difficulty in Maintenance: The massive codebase made it challenging to understand the system's state and introduce new changes without causing side effects.
- Slow Development Cycles: Shipping new features and updates took an extended amount of time due to the monolith's complexity.
- Scalability Issues: As Turo's team and user base grew, the monolithic architecture became a bottleneck for scalability and efficient development.
Why Turo Chose Temporal#
Turo evaluated various solutions and chose Temporal for its unique capabilities:
- Workflows as Code: Temporal enables developers to define workflows in familiar languages like Java, simplifying the transition from monolithic to microservices architecture.
- Error Handling and Resilience: Temporal's robust error handling and built-in fault tolerance ensure reliable workflow execution.
- Support and Community: Turo benefits from Temporal's active support and community, which provides invaluable assistance during the adoption process.
Benefits of Temporal for Turo#
"Temporal has significantly improved our development velocity and maintainability. It's easy to reason about and integrate into our existing systems." – Josh Wickham
Since adopting Temporal, Turo has experienced several key benefits: Enhanced Developer Velocity: Temporal simplifies the development and deployment of new microservices, reducing the time required to ship new features.
- Improved Maintainability: The clarity and modularity of Temporal workflows make them easier to maintain compared to the monolithic codebase.
- Reliable Workflows: Temporal durable execution ensures that workflows can recover from failures, providing greater reliability for Turo's critical processes.
Turo's Use Cases for Temporal#
Turo utilizes Temporal for various purposes, including:
- Reservation Workflow: Managing the state of car reservations, which involves multiple steps and interactions, is now streamlined using Temporal workflows.
- Payment Processing: Temporal orchestrates the entire payment flow, ensuring reliable and scalable transaction handling.
- Microservice Deployment: Temporal assists in the creation and deployment of new microservices, accelerating Turo's transition from monolithic to microservices architecture.
Conclusion#
Temporal has enabled Turo to decompose their monolith, enhance scalability, and increase development velocity. By adopting Temporal, Turo is better positioned to innovate and deliver high-quality features to their users more efficiently.


