Skip to content

feat: add summary generators for map/parallel operations#81

Closed
ghost wants to merge 1 commit intoimpossible-to-complete-create-resultfrom
map-parallel-summary
Closed

feat: add summary generators for map/parallel operations#81
ghost wants to merge 1 commit intoimpossible-to-complete-create-resultfrom
map-parallel-summary

Conversation

@ghost
Copy link

@ghost ghost commented Oct 21, 2025

Implement summary generators to handle large BatchResult payloads
(>256KB) in map and parallel operations, matching TypeScript SDK
behavior. When results exceed checkpoint size limit, operations
use ReplayChildren mode with compact JSON summaries instead of
full result serialization.

Key changes:

  • Add SummaryGenerator protocol and default implementations
  • Extend ParallelConfig/MapConfig with summary_generator field
  • Update ConcurrentExecutor to pass summary generators to child contexts
  • Implement replay_children logic based on payload size, not generator
    presence
  • Add test coverage for small/large payload scenarios

This enables efficient handling of large concurrent operation results
while maintaining deterministic replay behavior and preventing
checkpoint size violations.

Implement summary generators to handle large BatchResult payloads
(>256KB) in map and parallel operations, matching TypeScript SDK
behavior. When results exceed checkpoint size limit, operations
use ReplayChildren mode with compact JSON summaries instead of
full result serialization.

Key changes:
- Add SummaryGenerator protocol and default implementations
- Extend ParallelConfig/MapConfig with summary_generator field
- Update ConcurrentExecutor to pass summary generators to child contexts
- Implement replay_children logic based on payload size, not generator
  presence
- Add test coverage for small/large payload scenarios

This enables efficient handling of large concurrent operation results
while maintaining deterministic replay behavior and preventing
checkpoint size violations.
@ghost ghost closed this Oct 21, 2025
This pull request was closed.
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.

1 participant