Skip to main content

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

FeatureGo SDKJava SDKPython SDKRuby SDK
Workflow Definition
Activity Execution
Local Activities
Signals & Queries
Child Workflows
Timers & Sleep
Saga Pattern⚠️⚠️
Worker Tuning⚠️⚠️
Production Ready⚠️⚠️
Support StatusOfficialOfficialCommunityCommunity
✅ 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

  • 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
  • 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
  • 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

1

Choose Your SDK

Select Go or Java based on your team’s expertise and infrastructure.
2

Install Dependencies

Follow the installation guide for your chosen SDK.
3

Run Cadence Locally

docker compose -f docker/docker-compose.yml up
4

Try Sample Workflows

Clone and run the samples repository to understand patterns.
5

Build Your First Workflow

Start with a simple workflow and gradually add complexity.

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:8088

Next 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

Build docs developers (and LLMs) love