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 ->
22 .getChatRoomData(chatRoomInfo.getId())
23 .flatMapMany(chatRoomData -> chatRoomData.getMessages()))));
26 void writeChatRoomInfo(Flux<ChatRoomInfo> chatRoomInfoFlux);
27 Flux<ChatRoomInfo> readChatRoomInfo();
28 void writeChatRoomData(UUID chatRoomId, Flux<Message> messageFlux);
29 Flux<Message> readChatRoomData(UUID chatRoomId);