DigitalOcean Synchronizes Distributed Transactions with Temporal

With Temporal, we've reduced resources to build new systems from 10 engineers to 5 engineers, and regularly reduce lines of code from 300 to 30.

DigitalOcean_logo_white

Industry

High Tech

Use Case

Orchestrating distributed transactions

Company Size

250-2000

SDK

Go

Temporal

Self-Hosted


DigitalOcean, a leading cloud infrastructure provider, empowers developers with a range of hosting solutions. Their storage team, which plays a crucial role in ensuring reliable object and block storage services, adopted Temporal to improve the data consistency across various storage resources.

The Challenge: Desynchronized Resources

Prior to adopting Temporal, the DigitalOcean storage team didn’t have a sufficient distributed transaction mechanism, which at times resulted in data desynchronization when they stored data in multiple locations. These synchronization issues caused an operational burden.

DIY Reconciliation

The team took two approaches to reconciliation before adopting Temporal. One involved building custom reconciliation methods–essentially writing their own state machines to track resource updates across systems. However, this approach proved to be:

  • Error-Prone: Debugging and maintaining intricate state machines was complex and time-consuming.
  • Difficult to Onboard: New engineers struggled to grasp the logic of these custom state machines.
  • Resource Intensive: Building and maintaining reconciliation tools required significant development resources. The alternative approach was simply to address desynchronization issues as they came up, but this approach was also problematic.

Temporal to the Rescue: Distributed Transactions Made Easy

The thing I love about Temporal is that you can write normal code in your language...and actually just make it work in this distributed way.

DigitalOcean discovered Temporal as a solution specifically designed for orchestrating complex workflows with distributed transactions. Temporal's key advantages resonated with the storage team:

  • Intuitive Workflows: Temporal allows developers to define workflows using familiar programming languages, eliminating the need for complex state machine abstractions.
  • Effective Error Handling: Temporal's built-in mechanisms guarantee workflow completion or graceful failure, ensuring data consistency across systems.
  • Reduced Development Effort: Compared to custom solutions, Temporal Workflows are simpler to build and maintain.

Benefits of Temporal Adoption

Temporal has allowed me to deliver projects that would otherwise be much more complex, and much more difficult, on time and ahead of schedule, and we no longer have this ongoing maintenance burden.

DigitalOcean's experience with Temporal has significantly improved the development speed of the storage team and reliability of their services:

  • Improved Reliability: Temporal workflows ensure data consistency across numerous storage systems, preventing service disruptions.
  • Reduced Development Time: Simplified workflows lead to faster development cycles and project completion. The team estimates they’ve been able to reduce resources for building desynchronization systems from 10 to 5 engineers.
  • Improved Code Maintainability: Concise and readable Temporal code simplifies future maintenance and onboarding of new engineers.
  • Enhanced Team Collaboration: Temporal provides a clear model for distributed transactions, fostering better team understanding and knowledge sharing.

Conclusion

Temporal has helped DigitalOcean reconcile data in their storage systems, leading to more reliable systems and faster engineering velocity. The storage team delivers projects much more efficiently, letting them stay on top of their roadmap and deliver more value.

Build invincible apps

Ready to learn why companies like Netflix, Doordash, and Stripe trust Temporal as their secure and scalable way to build and innovate?