linkedin / linkedin/parseq

Support Parseq plan local cache to reduce fanout calls.

Open
#193 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Java
Stars
1.2k
Forks
268
PR merge metrics
No merged PRs in 30d

Description

Sometimes application make duplicate downstream calls when serving a request. One way is to make the Task sharable and pass it around, but it’s sometimes hard to refactor the code while maintaining code readability. It would be great that parseq can provide some cache capability to avoid duplicate calls.

Some idea may be: ParSeq can provide a plan-local cache <K, Task> where K is user-defined key and Task computes result. It would make sense to implement it on a ParSeq level because:

  1. ParSeq has a well defiled Plan life-cycle with hook when Plan completes (even after response has been sent to the client)
  2. Natural API for asynchronous computation which is a most common use case for a cache (we have seen similar feature requests for Rest.li request results)

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing ParSeq's plan lifecycle and the completion hook described in the issue, then determine where a plan-local cache API would fit. Review how asynchronous Tasks are represented and shared, and define done as preventing duplicate downstream computations within one plan while handling plan completion and cleanup.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.