105 lines
13 KiB
Markdown
105 lines
13 KiB
Markdown
# JetStream Remaining Parity Map
|
|
|
|
| Go Subject | .NET Route | Status | Test |
|
|
|---|---|---|---|
|
|
| $JS.API.INFO | `AccountApiHandlers.HandleInfo` | ported | `JetStreamAccountInfoApiTests.Account_info_returns_jetstream_limits_and_usage_shape` |
|
|
| $JS.API.SERVER.REMOVE | `AccountControlApiHandlers.HandleServerRemove` | ported | `JetStreamAccountControlApiTests.Account_and_server_control_subjects_are_routable` |
|
|
| $JS.API.ACCOUNT.PURGE.* | `AccountControlApiHandlers.HandleAccountPurge` | ported | `JetStreamAccountControlApiTests.Account_and_server_control_subjects_are_routable` |
|
|
| $JS.API.ACCOUNT.STREAM.MOVE.* | `AccountControlApiHandlers.HandleAccountStreamMove` | ported | `JetStreamAccountControlApiTests.Account_and_server_control_subjects_are_routable` |
|
|
| $JS.API.ACCOUNT.STREAM.MOVE.CANCEL.* | `AccountControlApiHandlers.HandleAccountStreamMoveCancel` | ported | `JetStreamAccountControlApiTests.Account_and_server_control_subjects_are_routable` |
|
|
| $JS.API.STREAM.CREATE.* | `StreamApiHandlers.HandleCreate` | ported | `JetStreamStreamLifecycleApiTests.Stream_create_info_and_update_roundtrip` |
|
|
| $JS.API.STREAM.INFO.* | `StreamApiHandlers.HandleInfo` | ported | `JetStreamStreamLifecycleApiTests.Stream_create_info_and_update_roundtrip` |
|
|
| $JS.API.STREAM.UPDATE.* | `StreamApiHandlers.HandleUpdate` | ported | `JetStreamStreamLifecycleApiTests.Stream_update_and_delete_roundtrip` |
|
|
| $JS.API.STREAM.DELETE.* | `StreamApiHandlers.HandleDelete` | ported | `JetStreamStreamLifecycleApiTests.Stream_update_and_delete_roundtrip` |
|
|
| $JS.API.STREAM.NAMES | `StreamApiHandlers.HandleNames` | ported | `JetStreamStreamListApiTests.Stream_names_and_list_return_created_streams` |
|
|
| $JS.API.STREAM.LIST | `StreamApiHandlers.HandleList` | ported | `JetStreamStreamListApiTests.Stream_names_and_list_return_created_streams` |
|
|
| $JS.API.STREAM.PEER.REMOVE.* | `ClusterControlApiHandlers.HandleStreamPeerRemove` | ported | `JetStreamClusterControlExtendedApiTests.Peer_remove_and_consumer_stepdown_subjects_return_success_shape` |
|
|
| $JS.API.STREAM.MSG.GET.* | `StreamApiHandlers.HandleMessageGet` | ported | `JetStreamStreamMessageApiTests.Stream_msg_get_delete_and_purge_change_state` |
|
|
| $JS.API.STREAM.MSG.DELETE.* | `StreamApiHandlers.HandleMessageDelete` | ported | `JetStreamStreamMessageApiTests.Stream_msg_get_delete_and_purge_change_state` |
|
|
| $JS.API.STREAM.PURGE.* | `StreamApiHandlers.HandlePurge` | ported | `JetStreamStreamMessageApiTests.Stream_msg_get_delete_and_purge_change_state` |
|
|
| $JS.API.DIRECT.GET.* | `DirectApiHandlers.HandleGet` | ported | `JetStreamDirectGetApiTests.Direct_get_returns_message_without_stream_info_wrapper` |
|
|
| $JS.API.STREAM.SNAPSHOT.* | `StreamApiHandlers.HandleSnapshot` | ported | `JetStreamSnapshotRestoreApiTests.Snapshot_then_restore_reconstructs_messages` |
|
|
| $JS.API.STREAM.RESTORE.* | `StreamApiHandlers.HandleRestore` | ported | `JetStreamSnapshotRestoreApiTests.Snapshot_then_restore_reconstructs_messages` |
|
|
| $JS.API.CONSUMER.CREATE.*.* | `ConsumerApiHandlers.HandleCreate` | ported | `JetStreamConsumerApiTests.Consumer_create_and_info_roundtrip` |
|
|
| $JS.API.CONSUMER.INFO.*.* | `ConsumerApiHandlers.HandleInfo` | ported | `JetStreamConsumerApiTests.Consumer_create_and_info_roundtrip` |
|
|
| $JS.API.CONSUMER.NAMES.* | `ConsumerApiHandlers.HandleNames` | ported | `JetStreamConsumerListApiTests.Consumer_names_list_and_delete_are_supported` |
|
|
| $JS.API.CONSUMER.LIST.* | `ConsumerApiHandlers.HandleList` | ported | `JetStreamConsumerListApiTests.Consumer_names_list_and_delete_are_supported` |
|
|
| $JS.API.CONSUMER.DELETE.*.* | `ConsumerApiHandlers.HandleDelete` | ported | `JetStreamConsumerListApiTests.Consumer_names_list_and_delete_are_supported` |
|
|
| $JS.API.CONSUMER.PAUSE.*.* | `ConsumerApiHandlers.HandlePause` | ported | `JetStreamConsumerControlApiTests.Consumer_pause_reset_unpin_mutate_state` |
|
|
| $JS.API.CONSUMER.RESET.*.* | `ConsumerApiHandlers.HandleReset` | ported | `JetStreamConsumerControlApiTests.Consumer_pause_reset_unpin_mutate_state` |
|
|
| $JS.API.CONSUMER.UNPIN.*.* | `ConsumerApiHandlers.HandleUnpin` | ported | `JetStreamConsumerControlApiTests.Consumer_pause_reset_unpin_mutate_state` |
|
|
| $JS.API.CONSUMER.MSG.NEXT.*.* | `ConsumerApiHandlers.HandleNext` | ported | `JetStreamConsumerNextApiTests.Consumer_msg_next_respects_batch_request` |
|
|
| $JS.API.CONSUMER.LEADER.STEPDOWN.*.* | `ClusterControlApiHandlers.HandleConsumerLeaderStepdown` | ported | `JetStreamClusterControlExtendedApiTests.Peer_remove_and_consumer_stepdown_subjects_return_success_shape` |
|
|
| $JS.API.STREAM.LEADER.STEPDOWN.* | `ClusterControlApiHandlers.HandleStreamLeaderStepdown` | ported | `JetStreamClusterControlApiTests.Stream_leader_stepdown_and_meta_stepdown_endpoints_return_success_shape` |
|
|
| $JS.API.META.LEADER.STEPDOWN | `ClusterControlApiHandlers.HandleMetaLeaderStepdown` | ported | `JetStreamClusterControlApiTests.Stream_leader_stepdown_and_meta_stepdown_endpoints_return_success_shape` |
|
|
|
|
## Post-Baseline Parity Closures (2026-02-23)
|
|
|
|
| Scope | Status | Test Evidence |
|
|
|---|---|---|
|
|
| Inter-server account-scoped interest protocol (`A+`/`A-`) | ported | `InterServerAccountProtocolTests.Aplus_Aminus_frames_include_account_scope_and_do_not_leak_interest_across_accounts` |
|
|
| Gateway reply remap (`_GR_.`) | ported | `GatewayAdvancedSemanticsTests.Gateway_forwarding_remaps_reply_subject_with_gr_prefix_and_restores_on_return` |
|
|
| Leaf loop marker/account mapping (`$LDS.` + LS account scope) | ported | `LeafAdvancedSemanticsTests.Leaf_loop_marker_blocks_reinjected_message_and_account_mapping_routes_to_expected_account` |
|
|
| JetStream internal client lifecycle | ported | `JetStreamInternalClientTests.JetStream_enabled_server_creates_internal_jetstream_client_and_keeps_it_account_scoped` |
|
|
| Stream runtime policy parity (`max_msg_size`, `max_age_ms`, `max_msgs_per`) | ported | `JetStreamStreamPolicyParityTests.Stream_rejects_oversize_message_and_prunes_by_max_age_and_per_subject_limits` |
|
|
| Stream behavior parity (dedupe window + sealed/delete/purge guards) | ported | `JetStreamStreamConfigBehaviorTests.Stream_honors_dedup_window_and_sealed_delete_purge_guards` |
|
|
| Consumer deliver/backoff/flow-control parity | ported | `JetStreamConsumerDeliverPolicyParityTests.*`, `JetStreamConsumerBackoffParityTests.*`, `JetStreamConsumerFlowControlParityTests.*` |
|
|
| Mirror/source advanced parity | ported | `JetStreamMirrorSourceParityTests.Source_subject_transform_and_cross_account_mapping_copy_expected_messages_only` |
|
|
| FileStore block + expiry parity | ported | `JetStreamFileStoreBlockParityTests.*`, `JetStreamStoreExpiryParityTests.*` |
|
|
| RAFT advanced consensus/snapshot/membership hooks | ported | `RaftConsensusAdvancedParityTests.*`, `RaftSnapshotTransferParityTests.*`, `RaftMembershipParityTests.*` |
|
|
| JetStream cluster governance + cross-cluster gateway path hooks | ported | `JetStreamClusterGovernanceParityTests.*`, `JetStreamCrossClusterGatewayParityTests.*` |
|
|
|
|
## Full-Repo Remaining Parity Closure (2026-02-23)
|
|
|
|
| Scope | Status | Test Evidence |
|
|
|---|---|---|
|
|
| Row-level parity guard from `differences.md` table | ported | `DifferencesParityClosureTests.Differences_md_has_no_remaining_baseline_n_or_stub_rows_in_tracked_scope` |
|
|
| Profiling endpoint (`/debug/pprof`) | ported | `PprofEndpointTests.Debug_pprof_endpoint_returns_profile_index_when_profport_enabled` |
|
|
| Accept-loop reload lock and callback hook | ported | `AcceptLoopReloadLockTests.*`, `AcceptLoopErrorCallbackTests.*` |
|
|
| Adaptive read buffer and outbound pooling | ported | `AdaptiveReadBufferTests.*`, `OutboundBufferPoolTests.*` |
|
|
| Inter-server opcode routing + trace initialization | ported | `InterServerOpcodeRoutingTests.*`, `MessageTraceInitializationTests.*` |
|
|
| SubList missing APIs and optimization/sweeper behavior | ported | `SubListNotificationTests.*`, `SubListRemoteFilterTests.*`, `SubListQueueWeightTests.*`, `SubListMatchBytesTests.*`, `SubListHighFanoutOptimizationTests.*`, `SubListAsyncCacheSweepTests.*` |
|
|
| Route account scope/topology/compression parity hooks | ported | `RouteAccountScopedTests.*`, `RouteTopologyGossipTests.*`, `RouteCompressionTests.*` |
|
|
| Gateway interest-only and leaf hub/spoke mapping helpers | ported | `GatewayInterestOnlyParityTests.*`, `LeafHubSpokeMappingParityTests.*` |
|
|
| Auth extension callout/proxy hooks | ported | `AuthExtensionParityTests.*`, `ExternalAuthCalloutTests.*`, `ProxyAuthTests.*` |
|
|
| Monitoring connz filter/field parity and varz slow-consumer breakdown | ported | `ConnzParityFilterTests.*`, `ConnzParityFieldTests.*`, `VarzSlowConsumerBreakdownTests.*` |
|
|
| JetStream runtime/consumer/storage/mirror-source closure tasks | ported | `JetStreamStreamRuntimeParityTests.*`, `JetStreamStreamFeatureToggleParityTests.*`, `JetStreamConsumerRuntimeParityTests.*`, `JetStreamConsumerFlowReplayParityTests.*`, `JetStreamFileStoreLayoutParityTests.*`, `JetStreamFileStoreCryptoCompressionTests.*`, `JetStreamMirrorSourceRuntimeParityTests.*` |
|
|
| RAFT runtime parity closure | ported | `RaftConsensusRuntimeParityTests.*`, `RaftSnapshotTransferRuntimeParityTests.*`, `RaftMembershipRuntimeParityTests.*` |
|
|
| JetStream cluster governance + cross-cluster runtime closure | ported | `JetStreamClusterGovernanceRuntimeParityTests.*`, `JetStreamCrossClusterRuntimeParityTests.*` |
|
|
| MQTT listener/connection/parser baseline parity | ported | `MqttListenerParityTests.*`, `MqttPublishSubscribeParityTests.*` |
|
|
|
|
## Strict Full Runtime Closures (2026-02-23)
|
|
|
|
| Scope | Status | Test Evidence |
|
|
|---|---|---|
|
|
| Account-scoped remote delivery semantics | ported | `RouteAccountScopedDeliveryTests.*`, `GatewayAccountScopedDeliveryTests.*`, `LeafAccountScopedDeliveryTests.*` |
|
|
| Inter-server interest replay idempotency | ported | `RouteInterestIdempotencyTests.*`, `GatewayInterestIdempotencyTests.*`, `LeafInterestIdempotencyTests.*` |
|
|
| Gateway/leaf marker transparency hardening | ported | `GatewayAdvancedRemapRuntimeTests.*`, `LeafLoopTransparencyRuntimeTests.*` |
|
|
| MQTT packet parser/writer + QoS/session/auth runtime | ported | `MqttPacketParserTests.*`, `MqttPacketWriterTests.*`, `MqttSessionRuntimeTests.*`, `MqttQosAckRuntimeTests.*`, `MqttAuthIntegrationTests.*`, `MqttKeepAliveTests.*` |
|
|
| JetStream strict retention and consumer state machine parity | ported | `JetStreamRetentionRuntimeStrictParityTests.*`, `JetStreamConsumerStateMachineStrictParityTests.*` |
|
|
| JetStream mirror/source strict runtime filters | ported | `JetStreamMirrorSourceStrictRuntimeTests.*` |
|
|
| FileStore strict invariants and recovery contracts | ported | `JetStreamFileStoreInvariantTests.*`, `JetStreamFileStoreRecoveryStrictParityTests.*` |
|
|
| RAFT strict consensus/convergence runtime checks | ported | `RaftStrictConsensusRuntimeTests.*`, `RaftStrictConvergenceRuntimeTests.*` |
|
|
| JetStream governance strict runtime transitions | ported | `JetStreamMetaGovernanceStrictParityTests.*`, `JetStreamReplicaGovernanceStrictParityTests.*` |
|
|
| Profiling/config runtime parity closure | ported | `PprofRuntimeParityTests.*`, `ConfigRuntimeParityTests.*` |
|
|
|
|
## JetStream Truth Matrix
|
|
|
|
| Feature | Differences Row | Evidence Status | Test Evidence |
|
|
|---|---|---|---|
|
|
| Internal JetStream client lifecycle | JETSTREAM (internal) | verified | `JetStreamInternalClientTests.*`, `JetStreamInternalClientRuntimeTests.*` |
|
|
| Stream retention semantics (`Limits`/`Interest`/`WorkQueue`) | Retention (Limits/Interest/WorkQueue) | verified | `JetStreamRetentionPolicyTests.*`, `JetStreamRetentionRuntimeParityTests.*` |
|
|
| Stream runtime policy and dedupe window | Duplicates dedup window | verified | `JetStreamStreamPolicyParityTests.*`, `JetStreamDedupeWindowParityTests.*` |
|
|
| Consumer deliver policy cursor semantics | DeliverPolicy (All/Last/New/StartSeq/StartTime) | verified | `JetStreamConsumerDeliverPolicyParityTests.*`, `JetStreamConsumerDeliverPolicyLongRunTests.*` |
|
|
| Ack/redelivery/backoff state-machine semantics | AckPolicy.All | verified | `JetStreamConsumerBackoffParityTests.*`, `JetStreamAckRedeliveryStateMachineTests.*` |
|
|
| Flow control, rate limiting, and replay timing | Flow control | verified | `JetStreamConsumerFlowControlParityTests.*`, `JetStreamFlowControlReplayTimingTests.*` |
|
|
| Replay timing parity under burst load | Replay policy | verified | `JetStreamFlowReplayBackoffTests.*`, `JetStreamFlowControlReplayTimingTests.*` |
|
|
| FileStore durable block/index semantics | Block-based layout (64 MB blocks) | verified | `JetStreamFileStoreBlockParityTests.*`, `JetStreamFileStoreDurabilityParityTests.*` |
|
|
| FileStore encryption/compression contracts | AES-GCM / ChaCha20 encryption | verified | `JetStreamFileStoreCryptoCompressionTests.*`, `JetStreamFileStoreCompressionEncryptionParityTests.*` |
|
|
| RAFT append/commit quorum safety | Log append + quorum | verified | `RaftConsensusAdvancedParityTests.*`, `RaftAppendCommitParityTests.*` |
|
|
| RAFT next-index/snapshot/membership convergence | Log mismatch resolution (NextIndex) | verified | `RaftSnapshotTransferParityTests.*`, `RaftOperationalConvergenceParityTests.*` |
|
|
| RAFT snapshot transfer behavior | Snapshot network transfer | verified | `RaftSnapshotTransferParityTests.*`, `RaftOperationalConvergenceParityTests.*` |
|
|
| RAFT membership changes | Membership changes | verified | `RaftMembershipParityTests.*`, `RaftOperationalConvergenceParityTests.*` |
|
|
| JetStream meta/replica governance behavior | Meta-group governance | verified | `JetStreamClusterGovernanceParityTests.*`, `JetStreamClusterGovernanceBehaviorParityTests.*` |
|
|
| Cross-cluster JetStream runtime behavior | Cross-cluster JetStream (gateways) | verified | `JetStreamCrossClusterGatewayParityTests.*`, `JetStreamCrossClusterBehaviorParityTests.*` |
|