temporalio / temporalio/sdk-rust
[Feature Request] More efficient large payload handling
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 523
- Forks
- 161
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 67
Description
Right now it's possible (in particular for local activities, which is why I'm writing this) to clone large payloads inside events during history lookahead (and possibly also application).
Ideally that would be avoided as it could cause substantial overhead during replay. Create a bench test to verify and then improve.
Possible fixes:
Rc/ArcPayload(s) types - also would require a customHistoryEventversion (maybeprostannotation?)- Never clone
HistoryEvents, always use refs
This might require https://github.com/temporalio/sdk-core/issues/180 to be done, as it probably allows using Rc more freely.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing history lookahead and application paths where large Payloads or HistoryEvents may be cloned. Create a benchmark for replay or lookahead overhead, then compare it while evaluating the proposed Rc/Arc Payload approach versus using references. Check whether sdk-core issue #180 is required before proceeding.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100