ethanlin01x opened a new issue, #3997:
URL: https://github.com/apache/iggy/issues/3997
### Description
The Python client cannot read or write a consumer offset directly.
`poll_messages` can store an offset through `auto_commit=True`, and
`IggyConsumer` has `store_offset()` / `delete_offset()`, but neither lets a
caller commit an offset it chooses or ask the server what is currently stored.
Every other SDK exposes the `ConsumerOffsetClient` methods on the client itself.
This blocks the common pattern of polling with `auto_commit=False` and
committing only after the application has finished processing a batch. It also
makes offset state impossible to inspect from Python, for example when checking
consumer lag.
### Affected area / component
Python SDK
### Proposed solution
Add two methods to `IggyClient` in `foreign/python/src/client.rs`, mapping
to the `ConsumerOffsetClient` trait:
```python
await client.store_consumer_offset(
stream="s", topic="t", consumer=Consumer.Single("my-app"), offset=42,
partition_id=0
)
info = await client.get_consumer_offset(
stream="s", topic="t", consumer=Consumer.Single("my-app"), partition_id=0
)
if info is not None:
print(info.partition_id, info.current_offset, info.stored_offset)
```
`partition_id` stays optional, like on `poll_messages`, so a consumer group
can resolve the member's assigned partition on the server.
`get_consumer_offset` needs a new `ConsumerOffsetInfo` pyclass with
`partition_id`, `current_offset` and `stored_offset` getters. It returns `None`
when the server has no offset for that consumer, matching `get_consumer_group`.
### Alternatives considered
_No response_
### Contribution
- [x] I'm willing to submit a pull request to implement this feature
### Good first issue
- [ ] I think this could be a good first issue for a new contributor
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]