awslabs / awslabs/amazon-kinesis-client-python
Is calling checkpoint() with no args on shutdown correct behaviour?
- Dominant language
- Python
- Stars
- 377
- Forks
- 228
- PR merge metrics
- No merged PRs in 30d
Description
In the [sample code](https://github.com/awslabs/amazon-kinesis-client-python/blob/master/samples/sample_kclpy_app.py), when a shutdown is requested we call the `checkpoint()` method with no args, which means the checkpoint sequence number will be the end of the most recently delivered list of records.
```
def shutdown_requested(self, shutdown_requested_input):
self.log("Shutdown has been requested, checkpointing.")
shutdown_requested_input.checkpointer.checkpoint()
```
Is this behaviour correct? What if shutdown is requested while we are halfway through processing a batch of records? This would mean we checkpoint the last record and therefore skip the second half of the batch. Or are we saying that `shutdown_requested()` can only be called after `process_records()` has completed, and not during?
Contributor guide
Assessment
This issue has not been assessed yet.