protected override async Task <SelectedSnapshot> LoadAsync(string persistenceId, SnapshotSelectionCriteria criteria)
        {
            var snapshots = await Database.SortedSetRangeByScoreAsync(
                GetSnapshotKey(persistenceId),
                criteria.MaxSequenceNr,
                -1,
                Exclude.None,
                Order.Descending);

            var found = snapshots
                        .Select(c => PersistentFromBytes(c))
                        .Where(c => criteria.Matches(c.Metadata))
                        .OrderByDescending(x => x.Metadata.SequenceNr)
                        .ThenByDescending(x => x.Metadata.Timestamp)
                        .FirstOrDefault();

            return(found);
        }