Uber Cadence is a fault-tolerant distributed workflow execution framework. It allows programming distributed long-running workflows as fault-tolerant actors. Cadence provides a highly available and durable backend service for scheduling tasks across multiple workers. It ensures workflows are retried after failures and maintains a history of execution. Cadence client libraries in Go and Java provide APIs to program workflows as actors while hiding complexity from developers.
3. uDebitReward
● Driver signs up if qualifies
● Eligibility is checked every 30 days
● Participation is lost if doesn’t meet the
rewards requirements when checked
8. Cadence Service
● Hosted
● High Scalability
● High Availability
● Task Queuing
● State Persistence (Cassandra/SQL)
● Visibility APIs
● Written in Go
9. CADENCE CLIENT LIBRARIES
● Go and Java
● Stateless
● Hide most of the complexity
● Distributed business logic programmed as fault tolerant actors.
68. SOME CADENCE USE CASES
● Freight load workflow
● Driver loyalty program
● Customer support workflows
● CI/CD/Deployment infrastructure
● End of month statement generation for each u4b customer
● Recalculate every hexagon on the city map every 1 minute for every city
● Tip processing in microservices architecture
● Managing Flink and Spark Jobs in Mesos or Yarn
● Customer loyalty Program
● Marketing email campaign management
● New datacenter provisioning
● Numerous other periodic jobs
69. CADENCE SUMMARY
• Task Execution Service
• Fault tolerant actors as a programming model
• Perfect to support DSL
• Inspired by AWS Simple Workflow (SWF) API
• Scalable and fault tolerant
• Open sourced