Skip to content

Instantly share code, notes, and snippets.

@inishchith
Last active February 27, 2025 23:59
Show Gist options
  • Save inishchith/be87bed00b8bec668182938cee5c1997 to your computer and use it in GitHub Desktop.
Save inishchith/be87bed00b8bec668182938cee5c1997 to your computer and use it in GitHub Desktop.
Temporal workflow with activities simulating a i/o heavy task
{
"events": [
{
"eventId": "1",
"eventTime": "2025-02-27T23:44:34.028406Z",
"eventType": "EVENT_TYPE_WORKFLOW_EXECUTION_STARTED",
"taskId": "4208310",
"workflowExecutionStartedEventAttributes": {
"workflowType": {
"name": "MyWorkflow"
},
"taskQueue": {
"name": "my-task-queue",
"kind": "TASK_QUEUE_KIND_NORMAL"
},
"workflowTaskTimeout": "10s",
"originalExecutionRunId": "b6c3c705-340b-45fb-9abb-f0ea6806d155",
"identity": "[email protected]",
"firstExecutionRunId": "b6c3c705-340b-45fb-9abb-f0ea6806d155",
"attempt": 1,
"firstWorkflowTaskBackoff": "0s",
"workflowId": "my-workflow"
}
},
{
"eventId": "2",
"eventTime": "2025-02-27T23:44:34.028555Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_SCHEDULED",
"taskId": "4208311",
"workflowTaskScheduledEventAttributes": {
"taskQueue": {
"name": "my-task-queue",
"kind": "TASK_QUEUE_KIND_NORMAL"
},
"startToCloseTimeout": "10s",
"attempt": 1
}
},
{
"eventId": "3",
"eventTime": "2025-02-27T23:44:34.068953Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_STARTED",
"taskId": "4208318",
"workflowTaskStartedEventAttributes": {
"scheduledEventId": "2",
"identity": "[email protected]",
"requestId": "c7461f76-698c-4c08-9d2d-e4fe95c59611",
"historySizeBytes": "498",
"workerVersion": {
"buildId": "b68844d9cb9e08974ca8fe86d492859e"
}
}
},
{
"eventId": "4",
"eventTime": "2025-02-27T23:44:34.080691Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_COMPLETED",
"taskId": "4208322",
"workflowTaskCompletedEventAttributes": {
"scheduledEventId": "2",
"startedEventId": "3",
"identity": "[email protected]",
"workerVersion": {
"buildId": "b68844d9cb9e08974ca8fe86d492859e"
},
"sdkMetadata": {
"coreUsedFlags": [
1,
2,
3
]
},
"meteringMetadata": {}
}
},
{
"eventId": "5",
"eventTime": "2025-02-27T23:44:34.080759Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_SCHEDULED",
"taskId": "4208323",
"activityTaskScheduledEventAttributes": {
"activityId": "1",
"activityType": {
"name": "first_activity"
},
"taskQueue": {
"name": "my-task-queue",
"kind": "TASK_QUEUE_KIND_NORMAL"
},
"header": {},
"scheduleToCloseTimeout": "86400s",
"scheduleToStartTimeout": "86400s",
"startToCloseTimeout": "86400s",
"heartbeatTimeout": "10s",
"workflowTaskCompletedEventId": "4",
"retryPolicy": {
"initialInterval": "1s",
"backoffCoefficient": 2,
"maximumInterval": "100s",
"maximumAttempts": 4
},
"useWorkflowBuildId": true
}
},
{
"eventId": "6",
"eventTime": "2025-02-27T23:44:34.080786Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_SCHEDULED",
"taskId": "4208324",
"activityTaskScheduledEventAttributes": {
"activityId": "2",
"activityType": {
"name": "first_activity"
},
"taskQueue": {
"name": "my-task-queue",
"kind": "TASK_QUEUE_KIND_NORMAL"
},
"header": {},
"scheduleToCloseTimeout": "86400s",
"scheduleToStartTimeout": "86400s",
"startToCloseTimeout": "86400s",
"heartbeatTimeout": "10s",
"workflowTaskCompletedEventId": "4",
"retryPolicy": {
"initialInterval": "1s",
"backoffCoefficient": 2,
"maximumInterval": "100s",
"maximumAttempts": 4
},
"useWorkflowBuildId": true
}
},
{
"eventId": "7",
"eventTime": "2025-02-27T23:44:34.080803Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_SCHEDULED",
"taskId": "4208325",
"activityTaskScheduledEventAttributes": {
"activityId": "3",
"activityType": {
"name": "first_activity"
},
"taskQueue": {
"name": "my-task-queue",
"kind": "TASK_QUEUE_KIND_NORMAL"
},
"header": {},
"scheduleToCloseTimeout": "86400s",
"scheduleToStartTimeout": "86400s",
"startToCloseTimeout": "86400s",
"heartbeatTimeout": "10s",
"workflowTaskCompletedEventId": "4",
"retryPolicy": {
"initialInterval": "1s",
"backoffCoefficient": 2,
"maximumInterval": "100s",
"maximumAttempts": 4
},
"useWorkflowBuildId": true
}
},
{
"eventId": "8",
"eventTime": "2025-02-27T23:44:34.080822Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_SCHEDULED",
"taskId": "4208326",
"activityTaskScheduledEventAttributes": {
"activityId": "4",
"activityType": {
"name": "first_activity"
},
"taskQueue": {
"name": "my-task-queue",
"kind": "TASK_QUEUE_KIND_NORMAL"
},
"header": {},
"scheduleToCloseTimeout": "86400s",
"scheduleToStartTimeout": "86400s",
"startToCloseTimeout": "86400s",
"heartbeatTimeout": "10s",
"workflowTaskCompletedEventId": "4",
"retryPolicy": {
"initialInterval": "1s",
"backoffCoefficient": 2,
"maximumInterval": "100s",
"maximumAttempts": 4
},
"useWorkflowBuildId": true
}
},
{
"eventId": "9",
"eventTime": "2025-02-27T23:44:34.080835Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_SCHEDULED",
"taskId": "4208327",
"activityTaskScheduledEventAttributes": {
"activityId": "5",
"activityType": {
"name": "first_activity"
},
"taskQueue": {
"name": "my-task-queue",
"kind": "TASK_QUEUE_KIND_NORMAL"
},
"header": {},
"scheduleToCloseTimeout": "86400s",
"scheduleToStartTimeout": "86400s",
"startToCloseTimeout": "86400s",
"heartbeatTimeout": "10s",
"workflowTaskCompletedEventId": "4",
"retryPolicy": {
"initialInterval": "1s",
"backoffCoefficient": 2,
"maximumInterval": "100s",
"maximumAttempts": 4
},
"useWorkflowBuildId": true
}
},
{
"eventId": "10",
"eventTime": "2025-02-27T23:44:34.080847Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_SCHEDULED",
"taskId": "4208328",
"activityTaskScheduledEventAttributes": {
"activityId": "6",
"activityType": {
"name": "first_activity"
},
"taskQueue": {
"name": "my-task-queue",
"kind": "TASK_QUEUE_KIND_NORMAL"
},
"header": {},
"scheduleToCloseTimeout": "86400s",
"scheduleToStartTimeout": "86400s",
"startToCloseTimeout": "86400s",
"heartbeatTimeout": "10s",
"workflowTaskCompletedEventId": "4",
"retryPolicy": {
"initialInterval": "1s",
"backoffCoefficient": 2,
"maximumInterval": "100s",
"maximumAttempts": 4
},
"useWorkflowBuildId": true
}
},
{
"eventId": "11",
"eventTime": "2025-02-27T23:44:34.080866Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_SCHEDULED",
"taskId": "4208329",
"activityTaskScheduledEventAttributes": {
"activityId": "7",
"activityType": {
"name": "first_activity"
},
"taskQueue": {
"name": "my-task-queue",
"kind": "TASK_QUEUE_KIND_NORMAL"
},
"header": {},
"scheduleToCloseTimeout": "86400s",
"scheduleToStartTimeout": "86400s",
"startToCloseTimeout": "86400s",
"heartbeatTimeout": "10s",
"workflowTaskCompletedEventId": "4",
"retryPolicy": {
"initialInterval": "1s",
"backoffCoefficient": 2,
"maximumInterval": "100s",
"maximumAttempts": 4
},
"useWorkflowBuildId": true
}
},
{
"eventId": "12",
"eventTime": "2025-02-27T23:44:34.080883Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_SCHEDULED",
"taskId": "4208330",
"activityTaskScheduledEventAttributes": {
"activityId": "8",
"activityType": {
"name": "first_activity"
},
"taskQueue": {
"name": "my-task-queue",
"kind": "TASK_QUEUE_KIND_NORMAL"
},
"header": {},
"scheduleToCloseTimeout": "86400s",
"scheduleToStartTimeout": "86400s",
"startToCloseTimeout": "86400s",
"heartbeatTimeout": "10s",
"workflowTaskCompletedEventId": "4",
"retryPolicy": {
"initialInterval": "1s",
"backoffCoefficient": 2,
"maximumInterval": "100s",
"maximumAttempts": 4
},
"useWorkflowBuildId": true
}
},
{
"eventId": "13",
"eventTime": "2025-02-27T23:44:34.080895Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_SCHEDULED",
"taskId": "4208331",
"activityTaskScheduledEventAttributes": {
"activityId": "9",
"activityType": {
"name": "first_activity"
},
"taskQueue": {
"name": "my-task-queue",
"kind": "TASK_QUEUE_KIND_NORMAL"
},
"header": {},
"scheduleToCloseTimeout": "86400s",
"scheduleToStartTimeout": "86400s",
"startToCloseTimeout": "86400s",
"heartbeatTimeout": "10s",
"workflowTaskCompletedEventId": "4",
"retryPolicy": {
"initialInterval": "1s",
"backoffCoefficient": 2,
"maximumInterval": "100s",
"maximumAttempts": 4
},
"useWorkflowBuildId": true
}
},
{
"eventId": "14",
"eventTime": "2025-02-27T23:44:34.080910Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_SCHEDULED",
"taskId": "4208332",
"activityTaskScheduledEventAttributes": {
"activityId": "10",
"activityType": {
"name": "first_activity"
},
"taskQueue": {
"name": "my-task-queue",
"kind": "TASK_QUEUE_KIND_NORMAL"
},
"header": {},
"scheduleToCloseTimeout": "86400s",
"scheduleToStartTimeout": "86400s",
"startToCloseTimeout": "86400s",
"heartbeatTimeout": "10s",
"workflowTaskCompletedEventId": "4",
"retryPolicy": {
"initialInterval": "1s",
"backoffCoefficient": 2,
"maximumInterval": "100s",
"maximumAttempts": 4
},
"useWorkflowBuildId": true
}
},
{
"eventId": "15",
"eventTime": "2025-02-27T23:44:34.117772Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_STARTED",
"taskId": "4208357",
"activityTaskStartedEventAttributes": {
"scheduledEventId": "14",
"identity": "[email protected]",
"requestId": "53e7c19d-02d4-46b3-b504-5f4d784c5b49",
"attempt": 1,
"workerVersion": {
"buildId": "b68844d9cb9e08974ca8fe86d492859e"
}
}
},
{
"eventId": "16",
"eventTime": "2025-02-27T23:44:38.580526Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_COMPLETED",
"taskId": "4208358",
"activityTaskCompletedEventAttributes": {
"result": {
"payloads": [
{
"metadata": {
"encoding": "YmluYXJ5L251bGw="
}
}
]
},
"scheduledEventId": "14",
"startedEventId": "15",
"identity": "[email protected]"
}
},
{
"eventId": "17",
"eventTime": "2025-02-27T23:44:38.580538Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_SCHEDULED",
"taskId": "4208359",
"workflowTaskScheduledEventAttributes": {
"taskQueue": {
"name": "28513@Nishchiths-MacBook-Pro.local-0a8aad66d1d9423a904ce018ec8bdc62",
"kind": "TASK_QUEUE_KIND_STICKY",
"normalName": "my-task-queue"
},
"startToCloseTimeout": "10s",
"attempt": 1
}
},
{
"eventId": "18",
"eventTime": "2025-02-27T23:44:38.588465Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_STARTED",
"taskId": "4208364",
"workflowTaskStartedEventAttributes": {
"scheduledEventId": "17",
"identity": "[email protected]",
"requestId": "0d007c22-73a9-4bd4-b9ff-d900c276c472",
"historySizeBytes": "2262",
"workerVersion": {
"buildId": "b68844d9cb9e08974ca8fe86d492859e"
}
}
},
{
"eventId": "19",
"eventTime": "2025-02-27T23:44:47.246273Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_COMPLETED",
"taskId": "4208389",
"workflowTaskCompletedEventAttributes": {
"scheduledEventId": "17",
"startedEventId": "18",
"identity": "[email protected]",
"workerVersion": {
"buildId": "b68844d9cb9e08974ca8fe86d492859e"
},
"sdkMetadata": {},
"meteringMetadata": {}
}
},
{
"eventId": "20",
"eventTime": "2025-02-27T23:44:34.119852Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_STARTED",
"taskId": "4208390",
"activityTaskStartedEventAttributes": {
"scheduledEventId": "9",
"identity": "[email protected]",
"requestId": "3c0bfcaa-e3a2-4b3f-868e-9808cc2b166a",
"attempt": 1,
"workerVersion": {
"buildId": "b68844d9cb9e08974ca8fe86d492859e"
}
}
},
{
"eventId": "21",
"eventTime": "2025-02-27T23:44:42.948589Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_COMPLETED",
"taskId": "4208391",
"activityTaskCompletedEventAttributes": {
"result": {
"payloads": [
{
"metadata": {
"encoding": "YmluYXJ5L251bGw="
}
}
]
},
"scheduledEventId": "9",
"startedEventId": "20",
"identity": "[email protected]"
}
},
{
"eventId": "22",
"eventTime": "2025-02-27T23:44:47.246331Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_SCHEDULED",
"taskId": "4208392",
"workflowTaskScheduledEventAttributes": {
"taskQueue": {
"name": "28513@Nishchiths-MacBook-Pro.local-0a8aad66d1d9423a904ce018ec8bdc62",
"kind": "TASK_QUEUE_KIND_STICKY",
"normalName": "my-task-queue"
},
"startToCloseTimeout": "10s",
"attempt": 1
}
},
{
"eventId": "23",
"eventTime": "2025-02-27T23:44:47.246338Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_STARTED",
"taskId": "4208393",
"workflowTaskStartedEventAttributes": {
"scheduledEventId": "22",
"identity": "[email protected]",
"requestId": "request-from-RespondWorkflowTaskCompleted",
"historySizeBytes": "2405",
"workerVersion": {
"buildId": "b68844d9cb9e08974ca8fe86d492859e"
}
}
},
{
"eventId": "24",
"eventTime": "2025-02-27T23:44:55.857354Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_COMPLETED",
"taskId": "4208398",
"workflowTaskCompletedEventAttributes": {
"scheduledEventId": "22",
"startedEventId": "23",
"identity": "[email protected]",
"workerVersion": {
"buildId": "b68844d9cb9e08974ca8fe86d492859e"
},
"sdkMetadata": {},
"meteringMetadata": {}
}
},
{
"eventId": "25",
"eventTime": "2025-02-27T23:45:11.139193Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_STARTED",
"taskId": "4208437",
"activityTaskStartedEventAttributes": {
"scheduledEventId": "6",
"identity": "[email protected]",
"requestId": "330364ef-eab7-4b08-84e5-ff21a1705051",
"attempt": 4,
"lastFailure": {
"message": "activity Heartbeat timeout",
"source": "Server",
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
}
}
},
{
"eventId": "26",
"eventTime": "2025-02-27T23:45:21.145504Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_TIMED_OUT",
"taskId": "4208438",
"activityTaskTimedOutEventAttributes": {
"failure": {
"message": "activity Heartbeat timeout",
"source": "Server",
"cause": {
"message": "activity Heartbeat timeout",
"source": "Server",
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
},
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
},
"scheduledEventId": "6",
"startedEventId": "25",
"retryState": "RETRY_STATE_MAXIMUM_ATTEMPTS_REACHED"
}
},
{
"eventId": "27",
"eventTime": "2025-02-27T23:45:21.145523Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_SCHEDULED",
"taskId": "4208439",
"workflowTaskScheduledEventAttributes": {
"taskQueue": {
"name": "28513@Nishchiths-MacBook-Pro.local-0a8aad66d1d9423a904ce018ec8bdc62",
"kind": "TASK_QUEUE_KIND_STICKY",
"normalName": "my-task-queue"
},
"startToCloseTimeout": "10s",
"attempt": 1
}
},
{
"eventId": "28",
"eventTime": "2025-02-27T23:45:21.154866Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_STARTED",
"taskId": "4208444",
"workflowTaskStartedEventAttributes": {
"scheduledEventId": "27",
"identity": "[email protected]",
"requestId": "c70d3983-cd8c-411e-9097-64f850a1ded7",
"historySizeBytes": "3509",
"workerVersion": {
"buildId": "b68844d9cb9e08974ca8fe86d492859e"
}
}
},
{
"eventId": "29",
"eventTime": "2025-02-27T23:45:26.580567Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_FAILED",
"taskId": "4208449",
"workflowTaskFailedEventAttributes": {
"scheduledEventId": "27",
"startedEventId": "28",
"cause": "WORKFLOW_TASK_FAILED_CAUSE_UNHANDLED_COMMAND",
"failure": {
"message": "UnhandledCommand",
"serverFailureInfo": {}
},
"identity": "[email protected]"
}
},
{
"eventId": "30",
"eventTime": "2025-02-27T23:45:12.138513Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_STARTED",
"taskId": "4208450",
"activityTaskStartedEventAttributes": {
"scheduledEventId": "12",
"identity": "[email protected]",
"requestId": "34f75e5e-defc-4d35-a683-e5b480886ae8",
"attempt": 4,
"lastFailure": {
"message": "activity Heartbeat timeout",
"source": "Server",
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
}
}
},
{
"eventId": "31",
"eventTime": "2025-02-27T23:45:13.138956Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_STARTED",
"taskId": "4208451",
"activityTaskStartedEventAttributes": {
"scheduledEventId": "5",
"identity": "[email protected]",
"requestId": "f7be3d39-3f5a-49bd-b0fe-ae5ac0ee557b",
"attempt": 4,
"lastFailure": {
"message": "activity Heartbeat timeout",
"source": "Server",
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
}
}
},
{
"eventId": "32",
"eventTime": "2025-02-27T23:45:13.142524Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_STARTED",
"taskId": "4208452",
"activityTaskStartedEventAttributes": {
"scheduledEventId": "8",
"identity": "[email protected]",
"requestId": "40f7931b-d86d-4889-86a9-6541e213f4ec",
"attempt": 4,
"lastFailure": {
"message": "activity Heartbeat timeout",
"source": "Server",
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
}
}
},
{
"eventId": "33",
"eventTime": "2025-02-27T23:45:13.143901Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_STARTED",
"taskId": "4208453",
"activityTaskStartedEventAttributes": {
"scheduledEventId": "7",
"identity": "[email protected]",
"requestId": "68e67063-d1cd-485d-a841-b0c32dc33965",
"attempt": 4,
"lastFailure": {
"message": "activity Heartbeat timeout",
"source": "Server",
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
}
}
},
{
"eventId": "34",
"eventTime": "2025-02-27T23:45:13.145302Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_STARTED",
"taskId": "4208454",
"activityTaskStartedEventAttributes": {
"scheduledEventId": "11",
"identity": "[email protected]",
"requestId": "3918fb95-8753-4937-8a75-457d6c15c5f0",
"attempt": 4,
"lastFailure": {
"message": "activity Heartbeat timeout",
"source": "Server",
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
}
}
},
{
"eventId": "35",
"eventTime": "2025-02-27T23:45:13.146069Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_STARTED",
"taskId": "4208455",
"activityTaskStartedEventAttributes": {
"scheduledEventId": "13",
"identity": "[email protected]",
"requestId": "5c8bf2c5-b748-4d09-974e-54d148a74f15",
"attempt": 4,
"lastFailure": {
"message": "activity Heartbeat timeout",
"source": "Server",
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
}
}
},
{
"eventId": "36",
"eventTime": "2025-02-27T23:45:13.146822Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_STARTED",
"taskId": "4208456",
"activityTaskStartedEventAttributes": {
"scheduledEventId": "10",
"identity": "[email protected]",
"requestId": "52c19fbc-8381-4d30-8eac-7dbd8954f113",
"attempt": 4,
"lastFailure": {
"message": "activity Heartbeat timeout",
"source": "Server",
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
}
}
},
{
"eventId": "37",
"eventTime": "2025-02-27T23:45:22.143671Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_TIMED_OUT",
"taskId": "4208457",
"activityTaskTimedOutEventAttributes": {
"failure": {
"message": "activity Heartbeat timeout",
"source": "Server",
"cause": {
"message": "activity Heartbeat timeout",
"source": "Server",
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
},
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
},
"scheduledEventId": "12",
"startedEventId": "30",
"retryState": "RETRY_STATE_MAXIMUM_ATTEMPTS_REACHED"
}
},
{
"eventId": "38",
"eventTime": "2025-02-27T23:45:23.156622Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_TIMED_OUT",
"taskId": "4208458",
"activityTaskTimedOutEventAttributes": {
"failure": {
"message": "activity Heartbeat timeout",
"source": "Server",
"cause": {
"message": "activity Heartbeat timeout",
"source": "Server",
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
},
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
},
"scheduledEventId": "5",
"startedEventId": "31",
"retryState": "RETRY_STATE_MAXIMUM_ATTEMPTS_REACHED"
}
},
{
"eventId": "39",
"eventTime": "2025-02-27T23:45:23.156633Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_TIMED_OUT",
"taskId": "4208459",
"activityTaskTimedOutEventAttributes": {
"failure": {
"message": "activity Heartbeat timeout",
"source": "Server",
"cause": {
"message": "activity Heartbeat timeout",
"source": "Server",
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
},
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
},
"scheduledEventId": "8",
"startedEventId": "32",
"retryState": "RETRY_STATE_MAXIMUM_ATTEMPTS_REACHED"
}
},
{
"eventId": "40",
"eventTime": "2025-02-27T23:45:23.156640Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_TIMED_OUT",
"taskId": "4208460",
"activityTaskTimedOutEventAttributes": {
"failure": {
"message": "activity Heartbeat timeout",
"source": "Server",
"cause": {
"message": "activity Heartbeat timeout",
"source": "Server",
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
},
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
},
"scheduledEventId": "7",
"startedEventId": "33",
"retryState": "RETRY_STATE_MAXIMUM_ATTEMPTS_REACHED"
}
},
{
"eventId": "41",
"eventTime": "2025-02-27T23:45:23.156646Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_TIMED_OUT",
"taskId": "4208461",
"activityTaskTimedOutEventAttributes": {
"failure": {
"message": "activity Heartbeat timeout",
"source": "Server",
"cause": {
"message": "activity Heartbeat timeout",
"source": "Server",
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
},
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
},
"scheduledEventId": "11",
"startedEventId": "34",
"retryState": "RETRY_STATE_MAXIMUM_ATTEMPTS_REACHED"
}
},
{
"eventId": "42",
"eventTime": "2025-02-27T23:45:23.156652Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_TIMED_OUT",
"taskId": "4208462",
"activityTaskTimedOutEventAttributes": {
"failure": {
"message": "activity Heartbeat timeout",
"source": "Server",
"cause": {
"message": "activity Heartbeat timeout",
"source": "Server",
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
},
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
},
"scheduledEventId": "13",
"startedEventId": "35",
"retryState": "RETRY_STATE_MAXIMUM_ATTEMPTS_REACHED"
}
},
{
"eventId": "43",
"eventTime": "2025-02-27T23:45:23.156658Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_TIMED_OUT",
"taskId": "4208463",
"activityTaskTimedOutEventAttributes": {
"failure": {
"message": "activity Heartbeat timeout",
"source": "Server",
"cause": {
"message": "activity Heartbeat timeout",
"source": "Server",
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
},
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
},
"scheduledEventId": "10",
"startedEventId": "36",
"retryState": "RETRY_STATE_MAXIMUM_ATTEMPTS_REACHED"
}
},
{
"eventId": "44",
"eventTime": "2025-02-27T23:45:26.580581Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_SCHEDULED",
"taskId": "4208464",
"workflowTaskScheduledEventAttributes": {
"taskQueue": {
"name": "my-task-queue",
"kind": "TASK_QUEUE_KIND_NORMAL"
},
"startToCloseTimeout": "10s",
"attempt": 1
}
},
{
"eventId": "45",
"eventTime": "2025-02-27T23:45:26.590341Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_STARTED",
"taskId": "4208467",
"workflowTaskStartedEventAttributes": {
"scheduledEventId": "44",
"identity": "[email protected]",
"requestId": "642e6991-e2f5-4d6b-9b8b-3a6b3cb326a5",
"historySizeBytes": "5649",
"workerVersion": {
"buildId": "b68844d9cb9e08974ca8fe86d492859e"
}
}
},
{
"eventId": "46",
"eventTime": "2025-02-27T23:45:36.592895Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_TIMED_OUT",
"taskId": "4208471",
"workflowTaskTimedOutEventAttributes": {
"scheduledEventId": "44",
"startedEventId": "45",
"timeoutType": "TIMEOUT_TYPE_START_TO_CLOSE"
}
},
{
"eventId": "47",
"eventTime": "2025-02-27T23:46:56.946218Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_SCHEDULED",
"taskId": "4208491",
"workflowTaskScheduledEventAttributes": {
"taskQueue": {
"name": "my-task-queue",
"kind": "TASK_QUEUE_KIND_NORMAL"
},
"startToCloseTimeout": "48.543967589s",
"attempt": 7
}
},
{
"eventId": "48",
"eventTime": "2025-02-27T23:46:56.954070Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_STARTED",
"taskId": "4208492",
"workflowTaskStartedEventAttributes": {
"scheduledEventId": "47",
"identity": "[email protected]",
"requestId": "eb1074da-b22f-4a45-80ad-643dfad66066",
"historySizeBytes": "5825",
"workerVersion": {
"buildId": "b68844d9cb9e08974ca8fe86d492859e"
}
}
},
{
"eventId": "49",
"eventTime": "2025-02-27T23:47:00.955005Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_COMPLETED",
"taskId": "4208493",
"workflowTaskCompletedEventAttributes": {
"scheduledEventId": "47",
"startedEventId": "48",
"identity": "[email protected]",
"workerVersion": {
"buildId": "b68844d9cb9e08974ca8fe86d492859e"
},
"sdkMetadata": {},
"meteringMetadata": {}
}
},
{
"eventId": "50",
"eventTime": "2025-02-27T23:47:00.955151Z",
"eventType": "EVENT_TYPE_WORKFLOW_EXECUTION_FAILED",
"taskId": "4208494",
"workflowExecutionFailedEventAttributes": {
"failure": {
"message": "Activity task timed out",
"cause": {
"message": "activity Heartbeat timeout",
"source": "Server",
"cause": {
"message": "activity Heartbeat timeout",
"source": "Server",
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
},
"timeoutFailureInfo": {
"timeoutType": "TIMEOUT_TYPE_HEARTBEAT"
}
},
"activityFailureInfo": {
"scheduledEventId": "6",
"startedEventId": "25",
"activityType": {
"name": "first_activity"
},
"activityId": "2",
"retryState": "RETRY_STATE_MAXIMUM_ATTEMPTS_REACHED"
}
},
"retryState": "RETRY_STATE_RETRY_POLICY_NOT_SET",
"workflowTaskCompletedEventId": "49"
}
}
]
}
import asyncio
import logging
import threading
from datetime import timedelta
from temporalio import activity, workflow
from temporalio.common import RetryPolicy
from temporalio.client import Client
from temporalio.worker import Worker
from temporalio.worker.workflow_sandbox import (
SandboxedWorkflowRunner,
SandboxRestrictions,
)
from experiments.utils import auto_heartbeater
class Activities:
@staticmethod
@activity.defn
@auto_heartbeater
async def first_activity():
"""Makes multiple synchronous API calls"""
import requests
num_calls = 5
results = []
print(f"Making {num_calls} sequential API calls...")
for i in range(num_calls):
print(f"API call {i+1}/{num_calls}")
try:
# This public API has some latency which helps with our blocking example
response = requests.get('https://jsonplaceholder.typicode.com/posts', timeout=5)
results.append(response.json())
except Exception as e:
print(f"Error in API call: {e}")
results.append(None)
print(f"Completed {len(results)} API calls")
@workflow.defn
class MyWorkflow:
@workflow.run
async def run(self) -> None:
# Create multiple concurrent activity executions
retry_policy = RetryPolicy(
maximum_attempts=4,
backoff_coefficient=2,
)
activities = [
workflow.execute_activity_method(
Activities.first_activity,
schedule_to_close_timeout=timedelta(days=1),
heartbeat_timeout=timedelta(seconds=10),
retry_policy=retry_policy,
)
for _ in range(10)
]
# Wait for all activities to complete
await asyncio.gather(*activities)
async def create_worker(temporal_client: Client):
worker = Worker(
temporal_client,
task_queue="my-task-queue",
workflows=[MyWorkflow],
activities=[Activities.first_activity],
workflow_runner=SandboxedWorkflowRunner(
restrictions=SandboxRestrictions.default.with_passthrough_modules(
"application_sdk", "asyncio"
)
),
)
await worker.run()
async def main():
logging.basicConfig(level=logging.INFO)
client = await Client.connect("localhost:7233")
logging.info("Starting worker")
worker_thread = threading.Thread(
target=lambda: asyncio.run(create_worker(client)), daemon=True
)
worker_thread.start()
logging.info("Running workflow")
await client.execute_workflow(
MyWorkflow.run,
id="my-workflow",
task_queue="my-task-queue",
)
print("Workflow completed")
if __name__ == "__main__":
asyncio.run(main())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment