Skip to content

Callback features#17

Merged
maschnetwork merged 22 commits intomainfrom
feat/callback-clean
Jan 28, 2026
Merged

Callback features#17
maschnetwork merged 22 commits intomainfrom
feat/callback-clean

Conversation

@maschnetwork
Copy link
Contributor

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Issue Link, if available

Description

  • DurableContext.createCallback() API with configurable timeouts and custom SerDes support
  • CallbackOperation handles checkpointing, suspension, and polling for completion
  • Dedicated exceptions (CallbackTimeoutException, CallbackFailedException) for error handling
  • Testing utilities extended with completeCallback(), failCallback(), and timeoutCallback() methods for LocalDurableTestRunner and CloudDurableTestRunner

Checklist

  • I have filled out every section of the PR template
  • I have thoroughly tested this change

Testing

Unit Tests

Have unit tests been written for these changes?

Yes

Integration Tests

Have integration tests been written for these changes?

Yes

Examples

Has a new example been added for the change? (if applicable)

Yes

phipag
phipag previously requested changes Jan 26, 2026
Copy link
Contributor

@phipag phipag left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome work, and the cloud based tests also pass for me when deployed to my account. These comments are mostly cosmetic / minor. No major concerns about merging this.

@maschnetwork
Copy link
Contributor Author

@zhongkechen and @phipag applied review comments. please take a look.

@phipag
Copy link
Contributor

phipag commented Jan 28, 2026

Code looks good, but the cloud integration tests are failing now. I think related to refactoring to EventType enum.

[ERROR] Errors: 
[ERROR]   CloudBasedIntegrationTest.testCallbackExample:252 » UnsupportedOperation Unsupported event type: ExecutionStarted
[ERROR]   CloudBasedIntegrationTest.testCallbackExampleWithFailure:287 » UnsupportedOperation Unsupported event type: ExecutionStarted
[ERROR]   CloudBasedIntegrationTest.testCallbackExampleWithTimeout:320 » UnsupportedOperation Unsupported event type: ExecutionStarted
[ERROR]   CloudBasedIntegrationTest.testCustomConfigExample:204 » Runtime Function invocation failed
[ERROR]   CloudBasedIntegrationTest.testErrorHandlingExample:233 » Runtime Function invocation failed
[ERROR]   CloudBasedIntegrationTest.testGenericTypesExample:168 » Runtime Function invocation failed
[ERROR]   CloudBasedIntegrationTest.testRetryExample:74 » Runtime Function invocation failed
[ERROR]   CloudBasedIntegrationTest.testRetryInProcessExample:94 » Runtime Function invocation failed
[ERROR]   CloudBasedIntegrationTest.testSimpleStepExample:61 » Runtime Function invocation failed
[ERROR]   CloudBasedIntegrationTest.testWaitAtLeastExample:134 » Runtime Function invocation failed
[ERROR]   CloudBasedIntegrationTest.testWaitAtLeastInProcessExample:151 » Runtime Function invocation failed
[ERROR]   CloudBasedIntegrationTest.testWaitExample:116 » Runtime Function invocation failed
[INFO] 
[ERROR] Tests run: 12, Failures: 0, Errors: 12, Skipped: 0

@maschnetwork maschnetwork requested a review from phipag January 28, 2026 18:49
@maschnetwork
Copy link
Contributor Author

Fixed CloudIntegration Tests. Was missing some cases in the new switch when moving from if/else approach

@zhongkechen zhongkechen self-requested a review January 28, 2026 18:52
@maschnetwork maschnetwork removed the request for review from phipag January 28, 2026 18:54
@maschnetwork maschnetwork dismissed phipag’s stale review January 28, 2026 18:55

Discussed with Philipp offline and fixed remaining Integration tests.

@maschnetwork maschnetwork merged commit 39d2143 into main Jan 28, 2026
3 checks passed
@maschnetwork maschnetwork deleted the feat/callback-clean branch January 28, 2026 18:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants