1 package de.juplo.kafka.chat.backend.persistence.inmemory;
3 import de.juplo.kafka.chat.backend.ChatBackendProperties;
4 import de.juplo.kafka.chat.backend.api.ShardingStrategy;
5 import de.juplo.kafka.chat.backend.persistence.StorageStrategy;
6 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
7 import org.springframework.context.annotation.Bean;
8 import org.springframework.context.annotation.Configuration;
10 import java.time.Clock;
13 @ConditionalOnProperty(
14 prefix = "chat.backend",
16 havingValue = "in-memory",
17 matchIfMissing = true)
19 public class InMemoryServicesConfiguration
22 InMemoryChatHomeService chatHomeService(StorageStrategy storageStrategy)
24 return new InMemoryChatHomeService(1, storageStrategy.read());
28 InMemoryChatRoomFactory chatRoomFactory(
29 ShardingStrategy strategy,
31 ChatBackendProperties properties)
33 return new InMemoryChatRoomFactory(
36 properties.getChatroomBufferSize());
40 ShardingStrategy shardingStrategy()
42 return chatRoomId -> 0;