/// <summary>
        /// Stores the offset and sequenceNumber from the provided received
        /// <see cref="IEventData" /> instance, then writes those values to the
        /// checkpoint store via the checkpoint manager.
        /// </summary>
        /// <param name="eventData">The <see cref="IEventData" /> instance.</param>
        /// <returns>The asynchronous task.</returns>
        /// <exception cref="ArgumentNullException">
        /// Thrown if the given <see cref="IEventData"/> instance is null.
        /// </exception>
        /// <exception cref="ArgumentOutOfRangeException">
        /// Thrown if the the sequenceNumber from given <see cref="IEventData"/>
        /// instance is less than the last checkpointed value.
        /// </exception>
        public async Task CheckpointAsync(IEventData eventData)
        {
            Checks.Parameter(nameof(eventData), eventData)
            .NotNull();

            AzureEventData azureEventData = eventData.ToAzureEventData();

            await this.azurePartitionContext.CheckpointAsync(azureEventData);
        }