public void init() {
    try {
      String endpoint = String.format(ENDPOINT_TEMPLATE, configuration.getAccountName());

      CloudStorageAccount cosmosAccount =
          CloudStorageAccount.parse(
              String.format(
                  COSMOS_CONNECTION_TEMPLATE,
                  configuration.getAccountName(),
                  configuration.getAccountKey(),
                  endpoint));
      tableClient = cosmosAccount.createCloudTableClient();

      // Create the tables if the do not exist
      tableClient.getTableReference(JOB_TABLE).createIfNotExists();
      tableClient.getTableReference(JOB_DATA_TABLE).createIfNotExists();

      CloudStorageAccount blobAccount =
          CloudStorageAccount.parse(
              String.format(
                  BLOB_CONNECTION_TEMPLATE,
                  configuration.getAccountName(),
                  configuration.getBlobKey()));
      blobClient = blobAccount.createCloudBlobClient();

      blobClient.getContainerReference(BLOB_CONTAINER).createIfNotExists();
    } catch (StorageException | URISyntaxException | InvalidKeyException e) {
      throw new MicrosoftStorageException(e);
    }
  }
Uses the Azure Cosmos DB Table Storage API to persist job data.
extensions/cloud/portability-cloud-microsoft/src/main/java/org/datatransferproject/cloud/microsoft/cosmos/AzureTableStore.java