Joseph Doherty
|
662b2e0d87
|
feat(consumers): add PriorityGroupManager and PullConsumer timeout/compiled filters (C5+C6)
|
2026-02-24 15:11:30 -05:00 |
|
Joseph Doherty
|
612b15c781
|
feat: add PushConsumer delivery loop and RedeliveryTracker (C3+C4)
C3 – PushConsumerEngine delivery dispatch:
- Add DeliverSubject property (mirrors consumer.go:1131 dsubj field)
- Add StartDeliveryLoop / StopDeliveryLoop: background Task that drains
ConsumerHandle.PushFrames and calls a sendMessage delegate per frame
- Delivery loop honours AvailableAtUtc for rate-limiting (consumer.go:5120)
- Data frames: HMSG headers Nats-Sequence, Nats-Time-Stamp, Nats-Subject
(stream.go:586 JSSequence / JSTimeStamp / JSSubject constants)
- Flow-control frames: "NATS/1.0 100 FlowControl Request" (consumer.go:5501)
- Heartbeat frames: "NATS/1.0 100 Idle Heartbeat" (consumer.go:5222)
- Add DeliverSubject field to ConsumerConfig (consumer.go:115)
C4 – RedeliveryTracker with backoff schedules:
- Schedule(seq, deliveryCount, ackWaitMs): computes deadline using backoff
array indexed by (deliveryCount-1), clamped at last entry (consumer.go:5540)
- GetDue(): returns sequences whose deadline has passed
- Acknowledge(seq): removes sequence from tracking
- IsMaxDeliveries(seq, maxDeliver): checks threshold for drop decision
- Empty backoff array falls back to ackWaitMs
Tests: 7 PushConsumerDelivery tests + 10 RedeliveryTracker tests (17 total)
|
2026-02-24 15:01:15 -05:00 |
|
Joseph Doherty
|
a7f1243d4f
|
feat(consumers): add NAK/TERM/PROGRESS ack types with backoff (Go parity)
|
2026-02-24 14:49:20 -05:00 |
|
Joseph Doherty
|
3e972f217e
|
feat: add FileStore 6-way permutation tests (Go testFileStoreAllPermutations parity)
Port 20 tests across the {NoCipher, ChaCha, Aes} x {NoCompression, S2Compression}
matrix from Go's testFileStoreAllPermutations (filestore_test.go:55), yielding 120
total Theory executions in FileStorePermutationTests.cs.
Also fix PushFrame.Subject property missing compilation error that was blocking
the test build (JetStreamConsumerDeliveryEdgeTests.cs:119).
Tests covered (each runs 6x):
Store_and_load_basic TestFileStoreBasics:86
Store_multiple_messages_load_by_sequence TestFileStoreBasics:86
LoadLastBySubject_returns_most_recent_for_subject
Remove_single_message_updates_state TestFileStoreBasics:129
Purge_clears_all_messages TestFileStorePurge:710
TrimToMaxMessages_enforces_limit TestFileStoreMsgLimitBug:518
Block_rotation_when_exceeding_block_size TestFileStoreAndRetrieveMultiBlock:1527
GetState_returns_correct_counts TestFileStoreBasics:104
Snapshot_and_restore_round_trip TestFileStoreSnapshot:1799
ListAsync_returns_ordered_messages TestFileStoreTimeStamps:683
MaxAge_prunes_expired_messages TestFileStoreAgeLimit:616
Recovery_after_reopen_preserves_messages TestFileStoreBasicWriteMsgsAndRestore:181
Large_payload_store_and_load 64 KiB random payload variant
Multiple_subjects_filter_by_subject TestFileStoreBasics multi-subject
Sequential_writes_maintain_ordering TestFileStoreSelectNextFirst:304
Store_creates_files_on_disk disk-presence variant
Write_and_read_same_block TestFileStoreWriteAndReadSameBlock:1510
Stored_messages_have_non_decreasing_timestamps TestFileStoreTimeStamps:683
Remove_out_of_order_collapses_first_seq TestFileStoreCollapseDmap:1561
Snapshot_after_removes_preserves_remaining TestFileStoreSnapshot:1904
|
2026-02-24 06:43:48 -05:00 |
|
Joseph Doherty
|
081ff1b0db
|
docs: synchronize strict full go parity evidence and status
|
2026-02-23 15:03:35 -05:00 |
|
Joseph Doherty
|
7bea35aaa8
|
feat: harden jetstream consumer state machine parity
|
2026-02-23 14:48:47 -05:00 |
|
Joseph Doherty
|
377ad4a299
|
feat: complete jetstream deep operational parity closure
|
2026-02-23 13:43:14 -05:00 |
|
Joseph Doherty
|
b41e6ff320
|
feat: execute post-baseline jetstream parity plan
|
2026-02-23 12:11:19 -05:00 |
|
Joseph Doherty
|
8bce096f55
|
feat: complete final jetstream parity transport and runtime baselines
|
2026-02-23 11:04:43 -05:00 |
|
Joseph Doherty
|
f46b331921
|
feat: complete remaining jetstream parity implementation plan
|
2026-02-23 10:16:16 -05:00 |
|
Joseph Doherty
|
d3aad48096
|
feat: enforce jetstream ack and redelivery semantics
|
2026-02-23 06:09:26 -05:00 |
|
Joseph Doherty
|
fecb51095f
|
feat: implement jetstream push delivery and heartbeat
|
2026-02-23 06:08:14 -05:00 |
|
Joseph Doherty
|
9a0de19c2d
|
feat: implement jetstream pull consumer fetch
|
2026-02-23 06:07:02 -05:00 |
|