awslabs / awslabs/amazon-kinesis-client-python

Is calling checkpoint() with no args on shutdown correct behaviour?

Open
#208 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.