Skip to content

feat: add deployment and lite topic fields to Admin service - #116

Merged
lizhimins merged 1 commit into
apache:mainfrom
lizhimins:feature/align-admin-fields-with-internal
Jul 30, 2026
Merged

feat: add deployment and lite topic fields to Admin service#116
lizhimins merged 1 commit into
apache:mainfrom
lizhimins:feature/align-admin-fields-with-internal

Conversation

@lizhimins

Copy link
Copy Markdown
Member

Summary

Follow-up to #113 and #115, addressing review feedback on the Admin control-plane definitions.

  • Add an optional deployment_name to the fourteen Admin requests, so a single endpoint can address one of several isolated deployments in a multi-tenant setup.
  • Expose the lite topic dimension: lite_topic on DescribeGroupAccumulationRequest and in the ListMessageRequest.search_key oneof, liteTopic on ListConsumerConnectionRequest, and lite_topic_accumulation on DescribeGroupAccumulationResponse.
  • Add the LITE_SELECTIVE consumption model to MessageModel, for groups whose consumers selectively subscribe to individual lite topics multiplexed onto a shared physical topic.
  • Move AdminSendMessageRequest.ext_info from field 7 to 8, keeping system_properties at 7.

On the field number changes

The reassignment of field numbers is intentional and safe: the Admin control-plane RPCs have not been released yet. The latest tag is v2.1.2, which predates #113, so no published artifact carries these definitions and no consumer can depend on the current numbering. Renumbering now is free; doing it after a release would be a breaking change.

The numbers chosen here are the ones the Admin services already deployed against these RPCs use on the wire, so this alignment also keeps existing deployments interoperable.

definition.proto and service.proto are unchanged.

Verification

  • protoc 3.19.4 compiles all three files with --java_out cleanly.
  • Compared the generated FileDescriptorSet against the layout used by existing Admin deployments: 379 fields in common, 0 conflicts where the same field number carries a different type or label. Messages, enums, enum values and RPC signatures all match; no definition is missing.

Test plan

  • protoc --java_out succeeds for admin.proto, definition.proto, service.proto
  • Descriptor-level comparison shows no field number/type/label conflict
  • CI build on this PR

Admin control-plane requests could not address an individual deployment when a
single endpoint serves several isolated deployments, and the lite topic
dimension had no representation at all.

Add an optional deployment_name to the fourteen Admin requests, expose the lite
topic dimension through lite_topic, liteTopic and lite_topic_accumulation, and
add the LITE_SELECTIVE consumption model. Field numbers are assigned so that
these definitions stay wire compatible with Admin services already deployed
against these RPCs, which also moves AdminSendMessageRequest.ext_info to 8.
@lizhimins
lizhimins merged commit 3e60073 into apache:main Jul 30, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant