pltbkd commented on issue #1016: URL: https://github.com/apache/flink-agents/issues/1016#issuecomment-5664738090
Java won't enable the digest — it's already id-only via `DurableCallable.getId()`. For API tidiness I'd lean toward dropping the digest field from the state and unifying on a single `durable_id`; on the Python side, when no `durable_id` is given we'd implicitly derive one from the current function-id + args-digest, which keeps Python's ergonomics while aligning both sides. But this still leaves the lambda hazard, so I'm also fine with just requiring an explicit `durable_id`. `durable_gather` is a good Pythonic proposal, +1 — and if we adopt it I'd prefer `ctx.durable_gather(...)`. Java can't take the same shape: `durableExecuteAsync` returns the value directly (implicitly submitting and yielding), leaving no lazy handle to compose, so Java still needs `List<DurableCallable>`. Considering that we agreed on respecting the language habits, I think that difference is acceptable. But there is one concern: this shape holds only because `durable_execute_async` is lazy — submitted on await, so the runtime can reserve the whole batch's pending slots before anything starts. If we ever move to eager submission, that reserve-before-execute mechanism (the consistency design from the earlier batch PR) breaks. Do you see a problem here? @da-daken @joeyutong @wenjin272 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
