@Setter
public class ChatBackendProperties
{
- private String datadir = Paths.get(System.getProperty("java.io.tmpdir"),"chat", "backend").toString();
private String allowedOrigins = "http://localhost:4200";
+ private int chatroomBufferSize = 8;
+ private ServiceType services = ServiceType.inmemory;
+ private InMemoryServicesProperties inmemory = new InMemoryServicesProperties();
+ private KafkaServicesProperties kafka = new KafkaServicesProperties();
+
+
+ @Getter
+ @Setter
+ public static class InMemoryServicesProperties
+ {
+ private ShardingStrategyType shardingStrategy = ShardingStrategyType.none;
+ private int numShards = 1;
+ private int[] ownedShards = new int[] { 0 };
+ private StorageStrategyType storageStrategy = StorageStrategyType.none;
+ private String storageDirectory = Paths.get(System.getProperty("java.io.tmpdir"),"chat", "backend").toString();
+ }
+
+ @Getter
+ @Setter
+ public static class KafkaServicesProperties
+ {
+ private String clientIdPrefix = "DEV";
+ private String bootstrapServers = ":9092";
+ private String chatRoomChannelTopic = "message_channel";
+ private int numPartitions = 2;
+ }
+
+ public enum ServiceType { inmemory, kafka }
+ public enum StorageStrategyType { none, files, mongodb }
+ public enum ShardingStrategyType { none, kafkalike }
}