Skip to content

DOC-6829 Add preemptive Spring Data Redis JSON docs [PARKED]#3611

Open
andy-stark-redis wants to merge 1 commit into
mainfrom
DOC-6829-preemptive-spring-data-redis-json-docs
Open

DOC-6829 Add preemptive Spring Data Redis JSON docs [PARKED]#3611
andy-stark-redis wants to merge 1 commit into
mainfrom
DOC-6829-preemptive-spring-data-redis-json-docs

Conversation

@andy-stark-redis

@andy-stark-redis andy-stark-redis commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Summary

Preemptively documents the new template-layer JSON API in Spring Data Redis (DOC-6829), ahead of its upstream release. Adds a new recipe page under the Spring Data Redis section and links it from the section index.

  • New page: content/integrate/spring-framework-cache/json.md
  • Index entry: content/integrate/spring-framework-cache/_index.md

Warning

This PR is parked — do not merge. The docs are written against an unreleased, still-under-review upstream PR (spring-data-redis#3390). Merge only after the feature ships and the manifest below has been reconciled (see /pickup).

Park manifest

Ticket: DOC-6829
Parked at: 2026-07-10
Trigger to pick up: upstream PR spring-data-redis#3390 is merged and included in a released spring-data-redis version.
Labels: parked, do not merge yet

Pinned sources (state observed at park time)

Source URL Snapshot at park
SDR JSON support PR spring-projects/spring-data-redis#3390 state: open, merged: false, head SHA e35714beca1c1ac46f0cb8a325ac95b9e6199d0f, base main, milestone: none (no target version), updated 2026-07-08

To diff on pickup: gh api repos/spring-projects/spring-data-redis/pulls/3390 and compare merged / head.sha / milestone against the snapshot above; re-read JsonOperations.java, RedisJsonTemplate, and JacksonRedisJsonSerializer at the released tag.

Observed API shape the page assumes (LOW confidence — synthesized from an in-progress diff)

  • Fluent, spec-based entry points on RedisJsonTemplate: value(key), array(key), string(key), bool(key).
  • .path("$.jsonpath") chaining; set / setIfAbsent / get / paths.
  • Array: append, length, indexOf, trim. String: append, length. Boolean: toggle. Document: mergeWith.
  • Bean wiring: RedisJsonTemplate + JacksonRedisJsonSerializer(Type.class) over the existing RedisConnectionFactory.
  • Access is client-agnostic: identical API over Jedis and Lettuce (clients diverge only in internal converters/path types; full parity in the PR).

Re-check checklist (work these on pickup)

  • Method signatures — two reads of the diff disagreed (get(K key)JsonResult vs fluent value(key).get(); paths() vs path(); append(Object...) vs append(String)). Verify every signature on the page against released source. (highest risk)
  • Bean/serializer wiringRedisJsonTemplate setters and JacksonRedisJsonSerializer constructor are guessed; confirm the real configuration.
  • opsForJson() — not present in the diff at park time; SDR conventionally exposes opsForX(). If added before release, lead the page with it as the idiomatic entry point.
  • Version — replace the {version} placeholder in the Maven/Gradle snippets with the first release that includes JSON support.
  • BoundJsonOperations — explicitly deferred in the PR. If it lands before GA, add a bound-operations section.
  • mergeWith naming — may ship as merge.
  • Runnable examples — convert inline java blocks to tested TCE (clients-example) doctests once the feature reaches the client example repos.
  • Jedis/Lettuce parity at release — re-confirm the "works with either" claim; the two clients could ship support on different timelines.
  • Staleness — rebase/merge main; re-run link checks; confirm relref targets and the bannerText note are still valid.

On pickup, then

Update the docs to reconcile, remove the bannerText warning, drop the parked / do not merge yet labels, run /reflect (record what actually changed vs predicted) and /finalize (the durable squash — deferred until now on purpose so these re-check notes survive).

🤖 Generated with Claude Code


Note

Low Risk
Documentation-only changes with no runtime impact; API examples may drift until the upstream feature ships and the parked PR is reconciled.

Overview
Adds preemptive documentation for the unreleased Spring Data Redis template JSON API (DOC-6829), with a prominent banner noting the content tracks spring-data-redis#3390 and may change before GA.

A new recipe page json.md under Spring Data Redis covers requirements (Redis JSON, Lettuce/Jedis, Jackson), Maven/Gradle setup with a {version} placeholder, RedisJsonTemplate / JacksonRedisJsonSerializer bean wiring, and fluent examples for whole-document value() ops, JSON path updates, array() / string() / bool() helpers, and mergeWith(), with links to existing JSON/path/command docs.

The section _index.md gains a third bullet linking to the new page alongside cache and geo-failover recipes.

Reviewed by Cursor Bugbot for commit 2d36ad2. Bugbot is set up for automated code reviews on this repo. Configure here.

Document the new template-layer JSON API from the in-progress SDR PR
spring-projects/spring-data-redis#3390 ahead of its release. The page
lives under content/integrate/spring-framework-cache/, which despite the
directory name is the Spring Data Redis section (LinkTitle "Spring Data
Redis"), alongside the cache and geo-failover recipes.

The non-obvious call: no per-client split. RedisJsonTemplate/JsonOperations
is client-agnostic and identical whether Jedis or Lettuce backs the
connection — the clients diverge only in internal converters/path types
below the API surface, with full feature parity. So one set of examples
serves both. Examples are inline java (not runnable TCE snippets) because
the feature isn't in the client example repos yet, and a bannerText flags
the API as unreleased and subject to change.

Learned: SDR JSON template API is unified across Jedis/Lettuce; docs based on an unmerged PR
Directive: keep the JSON examples client-agnostic — do not split into Jedis vs Lettuce variants
Recheck: when spring-data-redis#3390 merges and ships — re-verify method signatures, bean/serializer wiring, and convert examples to runnable TCE doctests
Gaps: code examples untested; signatures and API shape read from an in-progress, still-reviewed diff
Ticket: DOC-6829
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@andy-stark-redis andy-stark-redis added do not merge yet parked PR speculatively added based on pre-release info. Check validity when release goes ahead. labels Jul 10, 2026
@github-actions

github-actions Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

DOC-6829

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do not merge yet parked PR speculatively added based on pre-release info. Check validity when release goes ahead.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant