Introduction
Cadence provides official client SDKs for Go and Java, along with community-maintained SDKs for other languages. These SDKs allow you to write workflows and activities in your preferred programming language while leveraging Cadence’s powerful orchestration capabilities.Official SDKs
Go SDK
Production-ready SDK with full feature support and active development
Java SDK
Enterprise-grade SDK with comprehensive tooling and Spring Boot integration
SDK Feature Comparison
| Feature | Go SDK | Java SDK | Python SDK | Ruby SDK |
|---|---|---|---|---|
| Workflow Definition | ✅ | ✅ | ✅ | ✅ |
| Activity Execution | ✅ | ✅ | ✅ | ✅ |
| Local Activities | ✅ | ✅ | ✅ | ❌ |
| Signals & Queries | ✅ | ✅ | ✅ | ✅ |
| Child Workflows | ✅ | ✅ | ✅ | ✅ |
| Timers & Sleep | ✅ | ✅ | ✅ | ✅ |
| Saga Pattern | ✅ | ✅ | ⚠️ | ⚠️ |
| Worker Tuning | ✅ | ✅ | ⚠️ | ⚠️ |
| Production Ready | ✅ | ✅ | ⚠️ | ⚠️ |
| Support Status | Official | Official | Community | Community |
✅ Full Support | ⚠️ Partial/Limited | ❌ Not Available
Language Support Matrix
Go SDK
Best for: High-performance services, cloud-native applications, microservices- Repository: cadence-workflow/cadence-go-client
- Status: Officially maintained by Cadence team
- Go Version: 1.18+
- Features: Full feature parity with Java SDK
- Documentation: Comprehensive godoc and examples
Java SDK
Best for: Enterprise applications, Spring Boot projects, existing Java ecosystems- Repository: cadence-workflow/cadence-java-client
- Status: Officially maintained by Cadence team
- Java Version: 8+
- Build Tools: Maven, Gradle
- Features: Annotation-based workflows, Spring Boot integration
Community SDKs
Python and Ruby SDKs are maintained by the community. See Community SDKs for details.Choosing the Right SDK
When to use Go SDK
When to use Go SDK
- You’re building cloud-native or microservices applications
- Performance and resource efficiency are priorities
- Your team is already using Go
- You need goroutine-based concurrency patterns
- You want minimal dependencies and fast compilation
When to use Java SDK
When to use Java SDK
- You have existing Java/JVM infrastructure
- You’re using Spring Boot or enterprise frameworks
- Your team prefers strong typing and OOP patterns
- You need integration with Java enterprise tools
- You want annotation-driven development
When to use Community SDKs
When to use Community SDKs
- Your primary language is Python or Ruby
- You’re prototyping or building internal tools
- You understand the SDK may have limited features
- You’re willing to contribute back to the community
- Official SDK migration path is planned for production
Core SDK Capabilities
All Cadence SDKs provide these fundamental capabilities:Workflow Definition
Define long-running, fault-tolerant workflows with deterministic execution guarantees.Activity Implementation
Encapsulate business logic that interacts with external systems with automatic retries.Worker Management
Run workers that poll for and execute workflows and activities from task lists.Signal and Query Support
Interact with running workflows through signals (commands) and queries (read-only).Child Workflow Composition
Orchestrate complex processes by composing workflows hierarchically.Timer and Sleep Operations
Implement delays and timeouts that survive worker restarts.Sample Applications
Get started quickly with official sample repositories:Go Samples
Complete examples including:
- Hello World workflows
- Error handling patterns
- Signal and query usage
- Child workflow orchestration
Java Samples
Enterprise patterns including:
- Spring Boot integration
- Saga pattern implementation
- Testing strategies
- Production configurations
Getting Started
Additional Resources
iWF Framework
Domain-specific language (DSL) framework built on top of Cadence for simplified workflow development
Cadence Web UI
View and manage workflows visually at
localhost:8088Next Steps
Go Client Guide
Learn how to build workflows with the Go SDK
Java Client Guide
Learn how to build workflows with the Java SDK
Community SDKs
Explore Python, Ruby, and other community SDKs
Core Concepts
Understand workflows, activities, and workers