private void deleteEntities(Iterator<TaskCheckpointEntity> entitiesToDelete) {
    TableBatchOperation batchOperation = new TableBatchOperation();

    while (entitiesToDelete.hasNext()) {
      TaskCheckpointEntity entity = entitiesToDelete.next();

      // Add to batch operation
      batchOperation.delete(entity);

      // Execute when batch reaches capacity or when this is the last item
      if (batchOperation.size() >= MAX_WRITE_BATCH_SIZE || !entitiesToDelete.hasNext()) {
        try {
          cloudTable.execute(batchOperation);
        } catch (StorageException e) {
          LOG.error("Executing batch failed for deleting checkpoints");
          throw new AzureException(e);
        }
        batchOperation.clear();
      }
    }
  }
Azure checkpoint manager is used to store checkpoints in a Azure Table.
All the task checkpoints are added to the a single table named "SamzaTaskCheckpoints".
The table entities take the following form:

+-----------------+---------------------+-------------------+
|                 |     Serialized      |                   |
|   TaskName      |     JSON SSP        |     Offset        |
|                 |                     |                   |
+-----------------+---------------------+-------------------+

 Each entity have a partitionKey set as the TaskName and the rowKey set as the SSP.
samza-azure/src/main/java/org/apache/samza/checkpoint/azure/AzureCheckpointManager.java