Skip to content

Commit 2d30986

Browse files
Add 1.0 release scope (#274)
1 parent f918255 commit 2d30986

File tree

1 file changed

+167
-0
lines changed

1 file changed

+167
-0
lines changed

docs/release-scope.md

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
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+
- Errors should capture the call site metadata including file, function, line, reason
58+
59+
### Notes
60+
- File/line capture not implemented yet
61+
- Some NIO limits affect error propagation
62+
- Backward compatibility must be maintained
63+
64+
---
65+
66+
# Security
67+
68+
## TLS / mTLS
69+
- TLS supported
70+
- mTLS supported via SwiftNIO TLS
71+
72+
## Authentication
73+
- Username/password authentication supported
74+
75+
---
76+
77+
# Timeouts and Retries
78+
79+
## Retries
80+
- Retry logic is **not** part of 1.0
81+
82+
## Timeouts
83+
- Command timeout
84+
- Blocking command timeout
85+
86+
---
87+
88+
# Cluster Mode Support
89+
90+
## Redirections
91+
Must handle:
92+
- `ASK`
93+
- `MOVED`
94+
95+
For:
96+
- Commands
97+
- Pipelines
98+
- Transactions
99+
100+
## Read From Replicas
101+
- `READONLY` supported
102+
- Graceful shutdown pending upstream fix
103+
104+
## Topology Changes
105+
Client should:
106+
- Handle failovers + resharding
107+
- Refresh topology after failures
108+
- Refresh immediately on `MOVED`
109+
110+
---
111+
112+
# Debug-ability
113+
114+
## Logging
115+
- Logging at crucial code paths
116+
- Defaults to debug/trace
117+
- Application handles top-level error logs
118+
119+
## Observability
120+
Out of scope for 1.0:
121+
- Latency metrics
122+
- Throughput
123+
- Failure rate
124+
- Command profiling
125+
126+
---
127+
128+
# Load Balancing
129+
130+
Supported:
131+
- Round-robin (in progress)
132+
- Random strategy
133+
134+
Not in 1.0:
135+
- Weighted LB
136+
- Latency-aware LB
137+
138+
---
139+
140+
# Circuit Breaking
141+
142+
Not part of 1.0. Future plans:
143+
- Detect unhealthy nodes
144+
- Health-check integration
145+
146+
---
147+
148+
# Additional Items
149+
150+
- Resolve remaining GitHub issues
151+
- Document API behaviors and design choices
152+
153+
---
154+
155+
# 1.0 Release Readiness Checklist
156+
157+
- [ ] [All standard commands implemented with typed return values](#command-coverage)
158+
- [x] [Node + cluster pipelines tested and validated](#pipelines)
159+
- [x] [Cluster transaction support functional](#transactions)
160+
- [ ] [Typed errors with file/line capture](#error-handling)
161+
- [x] [TLS/mTLS validated](#security)
162+
- [x] [ASK/MOVED + READONLY + topology refresh](#cluster-mode-support)
163+
- [ ] [Debug/trace logs added across critical paths](#debug-ability)
164+
- [x] [Command timeout support](#timeouts-and-retries)
165+
- [ ] [Resolve critical GitHub issues](#additional-items)
166+
- [ ] API docs + changelog finalized
167+
- [ ] Publish 1.0 tag + changelog

0 commit comments

Comments
 (0)