1 package de.juplo.kafka.chat.backend.persistence.inmemory;
3 import de.juplo.kafka.chat.backend.persistence.ShardingStrategy;
4 import lombok.RequiredArgsConstructor;
5 import org.apache.kafka.common.utils.Utils;
10 @RequiredArgsConstructor
11 public class KafkaLikeShardingStrategy implements ShardingStrategy
13 private final int numPartitions;
16 public int selectShard(UUID chatRoomId)
18 byte[] serializedKey = chatRoomId.toString().getBytes();
19 return Utils.toPositive(Utils.murmur2(serializedKey)) % numPartitions;