This section covers defining and implementing Temporal activities in Kotlin.
Activities are the building blocks for interacting with external systems. The Kotlin SDK provides type-safe activity execution with suspend function support.
| Document | Description |
|---|---|
| Definition | Activity interfaces, typed and string-based execution |
| Implementation | Implementing activities, KActivity API, heartbeating |
| Local Activities | Short-lived local activities |
// Define activity interface - @ActivityMethod is optional
@ActivityInterface
interface GreetingActivities {
suspend fun composeGreeting(greeting: String, name: String): String
}
// Use @ActivityMethod only when customizing the activity name
@ActivityInterface
interface CustomNameActivities {
@ActivityMethod(name = "compose-greeting")
suspend fun composeGreeting(greeting: String, name: String): String
}
// Implement activity
class GreetingActivitiesImpl : GreetingActivities {
override suspend fun composeGreeting(greeting: String, name: String): String {
return "$greeting, $name!"
}
}// Type-safe method reference
val greeting = KWorkflow.executeActivity(
GreetingActivities::composeGreeting,
KActivityOptions(startToCloseTimeout = 30.seconds),
"Hello", "World"
)
// String-based (for cross-language interop)
val result = KWorkflow.executeActivity<String>(
"composeGreeting",
KActivityOptions(startToCloseTimeout = 30.seconds),
"Hello", "World"
)| Pattern | API |
|---|---|
| Execute activity | KWorkflow.executeActivity(Interface::method, options, args) |
| Execute by name | KWorkflow.executeActivity<R>("name", options, args) |
| Local activity | KWorkflow.executeLocalActivity(Interface::method, options, args) |
| Heartbeat | KActivity.executionContext.heartbeat(details) |
- Implementation - Suspend activity patterns
- Local Activities - Short-lived activities
Next: Activity Definition