1 package de.juplo.kafka.chat.backend.persistence;
3 import de.juplo.kafka.chat.backend.domain.ChatHome;
4 import de.juplo.kafka.chat.backend.domain.ChatRoomInfo;
5 import de.juplo.kafka.chat.backend.domain.Message;
6 import reactor.core.publisher.Flux;
11 public interface StorageStrategy
13 default void write(ChatHome chatHome)
18 .doOnNext(chatRoomInfo -> writeChatRoomData(
21 .getChatRoomData(chatRoomInfo.getId())
22 .flatMapMany(chatRoomData -> chatRoomData.getMessages()))));
25 void writeChatRoomInfo(Flux<ChatRoomInfo> chatRoomInfoFlux);
26 Flux<ChatRoomInfo> readChatRoomInfo();
27 void writeChatRoomData(UUID chatRoomId, Flux<Message> messageFlux);
28 Flux<Message> readChatRoomData(UUID chatRoomId);