Skip to content

Commit 726a849

Browse files
author
Nilanshu Sharma
committed
Add 1.0 release scope
Signed-off-by: Nilanshu Sharma <nilanshu_sharma@apple.com>
1 parent ce27c69 commit 726a849

File tree

1 file changed

+176
-0
lines changed

1 file changed

+176
-0
lines changed

docs/release-scope.md

Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
# Valkey-Swift 1.0 Release Scope
2+
3+
This page outlines the complete scope, feature requirements, and readiness checklist for the **Valkey-Swift 1.0** release.
4+
5+
---
6+
7+
## Contents
8+
- [Commands](#commands)
9+
- [Pipelines](#pipelines)
10+
- [Transactions](#transactions)
11+
- [Error Handling](#error-handling)
12+
- [Security](#security)
13+
- [Timeouts and Retries](#timeouts-and-retries)
14+
- [Cluster Mode Support](#cluster-mode-support)
15+
- [Debug-ability](#debug-ability)
16+
- [Load Balancing](#load-balancing)
17+
- [Circuit Breaking](#circuit-breaking)
18+
- [Additional Items](#additional-items)
19+
- [1.0 Release Readiness Checklist](#10-release-readiness-checklist)
20+
21+
---
22+
23+
# Commands
24+
25+
## Command Coverage
26+
Valkey-Swift uses a code generator based on JSON definitions from the Valkey server repository.
27+
28+
- Full support for all standard commands
29+
- Support for JSON and Bloom module commands
30+
31+
## Command Return Types
32+
- Avoid returning raw `RESPToken` or `ByteBuffer` unless they map directly to primitives
33+
- Provide typed responses for complex structures
34+
- Reduce decoding burden for client applications
35+
36+
---
37+
38+
# Pipelines
39+
40+
- Support for **node-level** and **cluster-level** pipelines
41+
- Pipelines return standardized Swift types
42+
- `ASK` and `MOVED` redirections handled transparently
43+
44+
---
45+
46+
# Transactions
47+
48+
- Support for node-level and cluster-level transactions
49+
- Transactions return typed responses
50+
- Automatic handling of redirections (`ASK`, `MOVED`)
51+
52+
---
53+
54+
# Error Handling
55+
56+
- All errors are typed using **`ValkeyClientError`**
57+
- Should include:
58+
- File name
59+
- Line number
60+
- Description
61+
62+
### Notes
63+
- File/line capture not implemented yet
64+
- Some NIO limits affect error propagation
65+
- Backward compatibility must be maintained
66+
67+
---
68+
69+
# Security
70+
71+
## TLS / mTLS
72+
- TLS supported
73+
- mTLS supported via SwiftNIO TLS
74+
75+
## Authentication
76+
- Username/password authentication supported
77+
78+
---
79+
80+
# Timeouts and Retries
81+
82+
## Retries
83+
- Retry logic is **not** part of 1.0
84+
85+
## Timeouts
86+
- Command timeout
87+
- Blocking command timeout
88+
89+
---
90+
91+
# Cluster Mode Support
92+
93+
## Redirections
94+
Must handle:
95+
- `ASK`
96+
- `MOVED`
97+
98+
For:
99+
- Commands
100+
- Pipelines
101+
- Transactions
102+
103+
## Read From Replicas
104+
- `READONLY` supported
105+
- Graceful shutdown pending upstream fix
106+
107+
## Topology Changes
108+
Client should:
109+
- Handle failovers + resharding
110+
- Refresh topology after failures
111+
- Refresh immediately on `MOVED`
112+
113+
---
114+
115+
# Debug-ability
116+
117+
## Logging
118+
- Logging at crucial code paths
119+
- Defaults to debug/trace
120+
- Application handles top-level error logs
121+
122+
## Observability
123+
Out of scope for 1.0:
124+
- Latency metrics
125+
- Throughput
126+
- Failure rate
127+
- Command profiling
128+
129+
---
130+
131+
# Load Balancing
132+
133+
Supported:
134+
- Round-robin (in progress)
135+
- Random strategy
136+
137+
Not in 1.0:
138+
- Weighted LB
139+
- Latency-aware LB
140+
141+
---
142+
143+
# Circuit Breaking
144+
145+
Not part of 1.0. Future plans:
146+
- Detect unhealthy nodes
147+
- Health-check integration
148+
149+
---
150+
151+
# Additional Items
152+
153+
- Resolve remaining GitHub issues
154+
- Document API behaviors and design choices
155+
156+
---
157+
158+
# 1.0 Release Readiness Checklist
159+
160+
| Area | Description | Status |
161+
|------|-------------|--------|
162+
| Command Coverage | [All standard commands implemented with typed return values](#command-coverage) ||
163+
| Pipelines | [Node + cluster pipelines tested and validated](#pipelines) ||
164+
| Transactions | [Cluster transaction support functional](#transactions) ||
165+
| Error Handling | [Typed errors with file/line capture](#error-handling) ||
166+
| Security | [TLS/mTLS validated](#security) ||
167+
| Cluster Mode | [ASK/MOVED + READONLY + topology refresh](#cluster-mode-support) ||
168+
| Logging | [Debug/trace logs added across critical paths](#debug-ability) ||
169+
| Timeouts | [Command timeout support](#timeouts-and-retries) ||
170+
| Pending Issues | [Resolve critical GitHub issues](#additional-items) ||
171+
| Documentation | API docs + changelog finalized ||
172+
| GitHub Release | 1.0 tag + changelog published ||
173+
174+
### Notes
175+
- **** = Planned for 1.0
176+
- **** = Completed

0 commit comments

Comments
 (0)