What to build
Execute the production migration to the v2 key schema for the Java SDK's deployments. Decide and execute one of two migration paths:
- Maintenance-window rebuild — deploy the new SDK version with
REDIS_KEY_SCHEMA_VERSION=v2, let old v1 keys expire naturally via their existing TTLs, run a one-off rewrite script for the one key without a TTL (worker admin state).
- Dual-write transition period — write both v1 and v2 key names for a bridge period covering the longest TTL (7 days), read v2-first-fallback-v1, then retire v1 writes once the bridge period ends.
For trace keys specifically, this migrates Java's by_framework:trace:* history (shared format with Python, but that's a separate migration executed in Python's own Phase 2b issue — don't assume one script covers both languages). TS's historical trace namespace is unrelated and handled in TS's own Phase 2b issue.
Produce a rollback plan: revert REDIS_KEY_SCHEMA_VERSION to its default, valid only while old keys haven't expired or been cleared.
Acceptance criteria
Blocked by
#9
What to build
Execute the production migration to the v2 key schema for the Java SDK's deployments. Decide and execute one of two migration paths:
REDIS_KEY_SCHEMA_VERSION=v2, let old v1 keys expire naturally via their existing TTLs, run a one-off rewrite script for the one key without a TTL (worker admin state).For trace keys specifically, this migrates Java's
by_framework:trace:*history (shared format with Python, but that's a separate migration executed in Python's own Phase 2b issue — don't assume one script covers both languages). TS's historical trace namespace is unrelated and handled in TS's own Phase 2b issue.Produce a rollback plan: revert
REDIS_KEY_SCHEMA_VERSIONto its default, valid only while old keys haven't expired or been cleared.Acceptance criteria
by_framework:trace:*historyREDIS_KEY_SCHEMA_VERSION=v2switched on in production for Java workers/clientsBlocked by
#9