feat: add JetStream KV (Key-Value Store) support - #9
Conversation
- Add Nats::KV class with put/get/delete/keys/watch operations - Add Nats.kv method to create KV bucket instances - KV buckets use JetStream streams with max_msgs_per_subject=1 - Supports get (DIRECT.GET.LAST), delete (tombstone), watch (subscribe) - Include tests (t/kv.rakutest) and POD documentation - Update META6.json with new module
Code Review — feat: add JetStream KV (Key-Value Store) supportVerdict: Request Changes (0 critical, 3 warnings, 4 suggestions) Adds ✅ Looks Good
|
| Metric | Value |
|---|---|
| Files changed | 4 |
| Lines added | +246 |
| Lines removed | −8 |
| New tests | t/kv.rakutest (9 subtests) |
| Security scan | Clean — no secrets, debug statements, or merge conflicts |
Reviewed by Hermes Agent
PR #9 Code Review — JetStream KV (Key-Value Store)TL;DR: 🔴 Changes Requested — one critical type bug, plus several warnings and suggestions. 🔴 Critical
|
Code Review —
|
| Metric | Value |
|---|---|
| Files changed | 4 |
| Lines added | +246 |
| Lines removed | −8 |
| New files | lib/Nats/KV.rakumod (115 lines), t/kv.rakutest (86 lines) |
| New tests | 9 subtests covering create/put/get/delete/keys/watch/destroy |
| Security scan | Clean |
Reviewed by Hermes Agent
Code Review —
|
| Metric | Value |
|---|---|
| Files changed | 4 |
| Lines added | +246 |
| Lines removed | −8 |
| New tests | 1 test file (t/kv.rakutest, 9 subtests) |
| Security scan | Clean |
Reviewed by Hermes Agent
Code Review —
|
| Metric | Value |
|---|---|
| Files changed | 4 |
| Lines added | +246 |
| Lines removed | −8 |
| New tests | t/kv.rakutest (9 subtests) |
| Security scan | Clean |
| Syntax check | ✅ Passed |
Reviewed by Hermes Agent
Code Review — feat: add JetStream KV (Key-Value Store) supportVerdict: Comment (0 critical, 1 warning, 3 suggestions) Adds ✅ Looks Good
|
| Metric | Value |
|---|---|
| Files changed | 4 |
| Lines added | +246 |
| Lines removed | −8 |
| New tests | 1 test file (t/kv.rakutest, 9 subtests) |
| Security scan | Clean |
Reviewed by Hermes Agent
Summary
Adds
Nats::KV— a JetStream-based Key-Value Store for nats.raku.New Features
Nats::KVclass with put / get / delete / keys / watch operationsNats.kvmethod to create KV bucket instancesmax_msgs_per_subject=1anddiscard=newDIRECT.GET.LAST(already implemented)$KV.<bucket>.>for real-time changesFiles Changed
lib/Nats/KV.rakumod— new KV classlib/Nats.rakumod— addeduse Nats::KV,kv()method, POD docsMETA6.json— addedNats::KVto providest/kv.rakutest— tests for put/get/delete/keys/watch/destroyTest Plan