feat: complete remaining jetstream parity implementation plan
This commit is contained in:
@@ -288,7 +288,7 @@ Go implements a sophisticated slow consumer detection system:
|
||||
| `/subz` / `/subscriptionsz` | Y | Y | Account filtering, test subject filtering, pagination, and subscription details |
|
||||
| `/accountz` | Y | Stub | Returns empty response |
|
||||
| `/accstatz` | Y | Stub | Returns empty response |
|
||||
| `/jsz` | Y | Y | Returns live JetStream counts/config via `JszHandler` |
|
||||
| `/jsz` | Y | Y | Returns live JetStream counts/config and API totals/errors via `JszHandler` |
|
||||
|
||||
### Varz Response
|
||||
| Field Category | Go | .NET | Notes |
|
||||
@@ -303,7 +303,7 @@ Go implements a sophisticated slow consumer detection system:
|
||||
| Messages (in/out msgs/bytes) | Y | Y | |
|
||||
| SlowConsumer breakdown | Y | N | Go tracks per connection type |
|
||||
| Cluster/Gateway/Leaf blocks | Y | Partial | Config projection present; `/gatewayz` and `/leafz` endpoints remain stubs |
|
||||
| JetStream block | Y | Y | Includes live JetStream config + stream/consumer counts |
|
||||
| JetStream block | Y | Y | Includes live JetStream config, stream/consumer counts, and API totals/errors |
|
||||
| TLS cert expiry info | Y | Y | `TlsCertNotAfter` loaded via `X509CertificateLoader` in `/varz` |
|
||||
|
||||
### Connz Response
|
||||
@@ -415,3 +415,30 @@ The following items from the original gap list have been implemented:
|
||||
|
||||
### Remaining Lower Priority
|
||||
1. **Dynamic buffer sizing** — delegated to Pipe, less optimized for long-lived connections
|
||||
|
||||
---
|
||||
|
||||
## 10. JetStream Remaining Parity (2026-02-23)
|
||||
|
||||
### Newly Ported API Families
|
||||
- `$JS.API.INFO`
|
||||
- `$JS.API.STREAM.UPDATE.*`, `$JS.API.STREAM.DELETE.*`, `$JS.API.STREAM.NAMES`, `$JS.API.STREAM.LIST`
|
||||
- `$JS.API.STREAM.MSG.GET.*`, `$JS.API.STREAM.MSG.DELETE.*`, `$JS.API.STREAM.PURGE.*`
|
||||
- `$JS.API.DIRECT.GET.*`
|
||||
- `$JS.API.STREAM.SNAPSHOT.*`, `$JS.API.STREAM.RESTORE.*`
|
||||
- `$JS.API.CONSUMER.NAMES.*`, `$JS.API.CONSUMER.LIST.*`, `$JS.API.CONSUMER.DELETE.*.*`
|
||||
- `$JS.API.CONSUMER.PAUSE.*.*`, `$JS.API.CONSUMER.RESET.*.*`, `$JS.API.CONSUMER.UNPIN.*.*`
|
||||
- `$JS.API.CONSUMER.MSG.NEXT.*.*`
|
||||
- `$JS.API.STREAM.LEADER.STEPDOWN.*`, `$JS.API.META.LEADER.STEPDOWN`
|
||||
|
||||
### Runtime/Storage/RAFT Parity Additions
|
||||
- JetStream publish precondition support for expected last sequence (`ErrorCode=10071` on mismatch).
|
||||
- Pull consumer `no_wait` contract support (`TimedOut=false` on immediate empty fetch).
|
||||
- Ack-all pending floor behavior via `AckProcessor.AckAll` and pending-count introspection.
|
||||
- Stream store subject index support (`LoadLastBySubjectAsync`) in `MemStore` and `FileStore`.
|
||||
- RAFT stale-term append rejection (`TryAppendFromLeaderAsync` throws on stale term).
|
||||
- `/jsz` and `/varz` now expose JetStream API totals/errors from server stats.
|
||||
|
||||
### Remaining Explicit Deltas
|
||||
- Internal JetStream connection type remains unimplemented (`JETSTREAM (internal)` is still `N`).
|
||||
- Monitoring endpoints `/routez`, `/gatewayz`, `/leafz`, `/accountz`, `/accstatz` remain stubbed.
|
||||
|
||||
Reference in New Issue
Block a user