DOC-6832 Add go-redis automatic pipelining page [PARKED]#3621
Open
andy-stark-redis wants to merge 1 commit into
Open
DOC-6832 Add go-redis automatic pipelining page [PARKED]#3621andy-stark-redis wants to merge 1 commit into
andy-stark-redis wants to merge 1 commit into
Conversation
Document the experimental AutoPipeline() and AsyncAutoPipeline() APIs
(blocking and async faces), AutoPipelineConfig options, cluster slot
sharding, and caveats, based on go-redis PR #3867. Cross-link from the
Pipelines/transactions page.
Written against an unmerged draft PR, so two things are deliberately
provisional: the version note reads "v9.XX.0" as a placeholder because
no release ships the API yet, and the examples are static go blocks
rather than tested clients-example doctests because the TCE example set
cannot exist until a release lands. Both resolve at pickup, not now.
The config field list and defaults are also draft-derived and may move.
Learned: page docs an unreleased draft API; version and examples are placeholders to resolve at pickup
Constraint: the "v9.XX.0" version note is a placeholder; do not invent a real version until the release that ships #3867 is known
Directive: convert the static go code blocks to {{< clients-example >}} doctests once go-redis ships the API and an example set exists
Recheck: when go-redis PR #3867 merges and a release ships the AutoPipeline API
Ticket: DOC-6832
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a new Automatic pipelining page to the go-redis client docs, covering the
experimental
AutoPipeline()/AsyncAutoPipeline()APIs (blocking and async faces),config options, cluster slot sharding, and caveats, based on go-redis PR #3867.
Park manifest
Ticket: DOC-6832
Parked at: 2026-07-10 (re-parked 2026-07-13 with refreshed snapshot)
Trigger to pick up:
AutoPipeline()/AsyncAutoPipeline()merged to go-redismasterand shipped in a released go-redis v9 version (PR #3867 currently targets thefeature/autopipeline/integrationbranch, notmaster).Labels: parked, do not merge yet
Pinned sources (state observed at park time)
feature/autopipeline/integration· milestone:autopipeline(no version) · head SHA:4fa15e5ce484eb704b6ee114771dbf432e7b97a8· updated: 2026-07-13T07:45:24Zgh api repos/redis/go-redis/pulls/3867 --jq '{state, merged, draft, head_sha: .head.sha, base: .base.ref, milestone: .milestone.title, updated_at}'Snapshot history: first parked at head
4bb2c98(2026-07-10); re-parked at head4fa15e5(2026-07-13) after a
/pickupfound the trigger unmet and the diff moved by +2 commits. Todiff future churn from this snapshot:
gh api repos/redis/go-redis/compare/4fa15e5ce484eb704b6ee114771dbf432e7b97a8...<new-head>.PR #3867 is PR 3 of a series and, per its description, depends on an engine PR ("#1") and an
optional pipeline-pool PR ("#2"); those numbers are the author's in-series shorthand, not
verified GitHub PR numbers, so they are not snapshotted here. Resolve the real dependency PRs
on pickup.
Observed shape — confidence: LOW (unmerged draft, API confirmed still churning)
The page as committed currently documents the original draft shape:
AutoPipeline(nil)/AsyncAutoPipeline(nil)taking an optional*AutoPipelineConfig, returning(*AutoPipeliner, error).AutoPipelineConfigwith fieldsMaxBatchSize,MaxFlushDelay,MaxConcurrentBatches(>1 requiresUnordered),NumShards,PipelinePoolSize,Unordered,MaxRetries.Close; cluster slot sharding; caveats (context not honored once queued, blocking commands never batched,Dobypasses batching, whole-batch retry double-executes).4fa15e5, commit "refactor(autopipeline): AutoPipelineOptions + no-arg / WithOptions methods") — the page is already behind:AutoPipelineConfig→AutoPipelineOptions(settable viaOptions.AutoPipelineOptions);DefaultAutoPipelineConfig()→DefaultAutoPipelineOptions(), plus a distinctDefaultBlockingAutoPipelineOptions().AutoPipeline()/AsyncAutoPipeline()(useOptions/built-in default) plusAutoPipelineWithOptions(*AutoPipelineOptions)/AsyncAutoPipelineWithOptions(...). The oldAutoPipeline(nil)form is gone.AdaptiveDelay(requiresMaxFlushDelay > 0) — not on the page.MaxBatchSize200 (default/async) / 300 (blocking);MaxConcurrentBatches1 (ordered).NumShards > 1requiresUnordered: trueon the async (deferred) face.ring.goandsentinel.gowere also touched — Ring / failover clients may now expose autopipelining beyondClient/ClusterClient. Unverified; check at pickup.All of the above is from a still-draft diff and may move again before release — do not edit the page against it now.
Re-check checklist
AutoPipelineConfig→AutoPipelineOptionsthroughout the page (type,DefaultAutoPipelineOptions()), if the rename survives to release.AutoPipeline()/AsyncAutoPipeline()and theWithOptionsvariants; drop theAutoPipeline(nil)form. Show config viaOptions.AutoPipelineOptionsand/orAutoPipelineWithOptions(...).v9.XX.0placeholder with the real go-redis version that ships the API.```goblocks to tested{{< clients-example >}}doctests once a go-redis release ships the API and an example set exists.AdaptiveDelayconfig field (requiresMaxFlushDelay > 0) and the observed defaults (MaxBatchSize200/300,MaxConcurrentBatches1) if they hold at release.NumShards > 1→Unordered(async face) validation rule.Ring/ failover (SentinelClient) clients expose autopipelining and document/scope accordingly.Do, whole-batch retry) still holds.bannerText/{{< note >}}"experimental" wording depending on the feature's status at release.On pickup, then
When the trigger fires, run
/pickupon this PR. It reconciles the docs against thenow-settled source and takes the PR through the normal
/reflect→/finalizepipeline tomerge. The
do not merge yetguard holds until/finalizecompletes.🤖 Generated with Claude Code