1 package de.juplo.kafka.chat.backend.persistence.kafka;
3 import de.juplo.kafka.chat.backend.domain.ChatHomeService;
4 import de.juplo.kafka.chat.backend.domain.ChatRoom;
5 import de.juplo.kafka.chat.backend.domain.ShardNotOwnedException;
6 import lombok.extern.slf4j.Slf4j;
7 import reactor.core.publisher.Flux;
8 import reactor.core.publisher.Mono;
14 public class KafkaChatHomeService implements ChatHomeService
16 private final ChatMessageChannel chatMessageChanel;
19 public KafkaChatHomeService(ChatMessageChannel chatMessageChannel)
21 log.debug("Creating KafkaChatHomeService");
22 this.chatMessageChanel = chatMessageChannel;
27 public Mono<ChatRoom> getChatRoom(int shard, UUID id)
29 if (chatMessageChanel.isLoadInProgress())
31 throw new ShardNotOwnedException(shard);
35 return chatMessageChanel.getChatRoom(shard, id);
40 public Flux<ChatRoom> getChatRooms(int shard)
42 if (chatMessageChanel.isLoadInProgress())
44 throw new ShardNotOwnedException(shard);
48 return chatMessageChanel.getChatRooms(shard);