Backport sourcing-consumer config for ADR-60#937
Conversation
ADR-60 lets clients pre-create a push-durable consumer and pass it via StreamSource.consumer when sourcing or mirroring from a workqueue or interest stream. Without the field the server returns SOURCE_DURABLE_CONSUMER_CFG_INVALID.
|
Claude finished @caspervonb's task in 2m 5s —— View job PR Review: Backport sourcing-consumer config for ADR-60
SummaryThe ADR-60 core changes ( Out-of-scope / untested changes — The diff also includes ADR-50 atomic-batch-publish additions that are unrelated to the PR description:
None of these have test coverage. They should either be described in the PR body or split into a separate PR to keep scope clear. ADR-60 changes are sound:
|
|
@claude please review again |
|
Claude finished @caspervonb's task in 2m 9s —— View job PR Review: Backport sourcing-consumer config for ADR-60
ADR-50 batch-publish changes are still presentThe previous review flagged ADR-50 additions as out-of-scope, and you noted they were moved to #938 — but the current diff on this branch still includes them:
BATCH_COMMIT = "Nats-Batch-Commit"
BATCH_ID = "Nats-Batch-Id"
BATCH_SEQUENCE = "Nats-Batch-Sequence"
batch_id: Optional[str] = None
batch_size: Optional[int] = None
@classmethod
def from_response(cls, resp) -> PubAck:
# remaps batch→batch_id, count→batch_size
...
def as_dict(self) -> Dict[str, object]:
# remaps batch_id→batch, batch_size→count
...None of these have test coverage. If #938 is intended to carry this, it looks like the rebase may not have cleanly excluded them from this branch. Worth double-checking — ADR-60 changes look correct
TestsThe five
No issues with the test logic. SummaryThe ADR-60 additions are correct and well-tested. The only blocker is that the ADR-50 batch-publish changes ( |
ADR-60 lets clients pre-create a push-durable consumer for sourcing/mirroring from workqueue or interest streams. Without
StreamSource.consumerthe server rejects the config withSOURCE_DURABLE_CONSUMER_CFG_INVALID.