+ return infoChannel
+ .getChatRoomInfo(id)
+ .map(chatRoomInfo ->
+ chatRoomData[shard].computeIfAbsent(id, this::computeChatRoomData));
+ }
+
+ private ChatRoomData computeChatRoomData(UUID chatRoomId)
+ {
+ log.info("Creating ChatRoom {} with buffer-size {}", chatRoomId, bufferSize);
+ KafkaChatMessageService service = new KafkaChatMessageService(this, chatRoomId);
+ return new ChatRoomData(clock, service, bufferSize);