BatchGetItem class handles a situation when there're unprocessed_keys in the response and it's great.
Unfortunately when a table has a composite key (hash key + range key) then the class will send a following request:
Aws::DynamoDB::Client 400 0.010033 0 retries] batch_get_item(request_items:{"my_table_name"=>{keys:[{{"my_hash_key"=>{s:"xyz"},"my_range_key"=>{null:true}},{"my_hash_key"=>{s:"xyz"},"my_range_key"=>{null:true}}, ...],consistent_read:nil}})
which results in Aws::DynamoDB::Errors::ValidationException Provided list of item keys contains duplicates