Dapper Labs, known for CryptoKitties, NBA Top Shot, NFL All Day, UFC Strike, and the Flow blockchain, uses blockchain technology to create NFTs and digital experiences for fans worldwide. They leverage Temporal to improve payment systems and streamline blockchain workflows, enhancing scalability and developer efficiency.
Challenges Before Temporal
Before adopting Temporal, Dapper Labs faced several challenges with its payment system:
- Complex Microservice Interactions: Managing multiple gRPC services required a robust orchestration system to handle various compensating actions and the saga pattern.
- Scalability Issues: The existing proprietary event-sourcing engine struggled with scalability and maintenance, leading to frequent downtimes and operational inefficiencies.
- Maintenance Overhead: Custom-built solutions for orchestrating workflows and handling state changes were difficult to maintain and scale.
Why Dapper Labs Chose Temporal
"I preferred writing orchestrations in code, which Temporal supports, making it easier for engineers to read and understand workflows without dealing with complex graphs." – Ian Pun, Senior Software Engineer at Dapper Labs
Dapper Labs chose Temporal for several key reasons:
- Workflows as Code: Temporal allows workflows to be written in code, simplifying the development process and making it more intuitive for engineers.
- Native Integration: Temporal integrates seamlessly with Dapper Labs' existing Go-based infrastructure.
- Robust Testing Framework: Temporal provides excellent support for unit testing and mocking, improving the development and CI/CD process.
Benefits of Temporal for Dapper Labs
Since implementing Temporal, Dapper Labs has experienced numerous benefits:
- Enhanced Developer Experience: Temporal's code-first approach and robust testing tools have improved developer satisfaction and efficiency.
- Increased Reliability: Temporal's fault tolerance and efficient error handling have reduced downtimes and improved system reliability.
- Faster Development Cycles: Temporal's simplified workflow orchestration has led to a 30-40 percent reduction in code, accelerating development cycles and reducing time-to-market.
Dapper Labs' Use Cases for Temporal
Dapper Labs uses Temporal for a variety of critical workflows:
- Payment Systems: Temporal orchestrates the on-ramping and off-ramping of payments, ensuring smooth and reliable transaction processing across multiple blockchain services.
- NBA Top Shot: Temporal manages reservation queues for NBA Top Shot, handling extended timeouts and ensuring seamless user experiences.
- Purchase Fulfillment: Temporal workflows manage the fulfillment of purchases and order processing, integrating with external payment providers for asynchronous transaction handling.
Conclusion
By using Temporal, Dapper Labs has improved its handling of complex workflows and blockchain payments. Temporal's features and code-first approach have boosted scalability, developer efficiency, and system reliability, helping Dapper Labs continue to innovate in the blockchain space.