├── .gitignore ├── 01-basic-websocket-server ├── .gitignore ├── README.md ├── build.gradle.kts ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle.kts └── src │ ├── main │ ├── kotlin │ │ └── com │ │ │ └── example │ │ │ └── websocket │ │ │ ├── WebsocketServerApplication.kt │ │ │ ├── config │ │ │ ├── RedisConfig.kt │ │ │ └── WebSocketConfig.kt │ │ │ ├── controller │ │ │ ├── NotificationController.kt │ │ │ └── WebsocketController.kt │ │ │ ├── model │ │ │ └── NewMessageRequest.kt │ │ │ └── service │ │ │ └── RedisService.kt │ └── resources │ │ └── application.yml │ └── test │ └── kotlin │ └── com │ └── example │ └── websocket │ └── WebsocketServerApplicationTests.kt ├── 02-scaling-websocket-server ├── .gitignore ├── README.md ├── backend-service │ ├── .gitignore │ ├── build.gradle.kts │ ├── settings.gradle.kts │ └── src │ │ ├── main │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── backend │ │ │ │ ├── BackendApplication.kt │ │ │ │ ├── config │ │ │ │ └── RedisStreamConfig.kt │ │ │ │ └── service │ │ │ │ ├── RedisStreamConsumer.kt │ │ │ │ └── RedisStreamProducer.kt │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── kotlin │ │ └── com │ │ └── example │ │ └── backend │ │ └── BackendApplicationTests.kt ├── build.gradle.kts ├── common-dto │ ├── .gitignore │ ├── build.gradle.kts │ ├── settings.gradle.kts │ └── src │ │ └── main │ │ ├── kotlin │ │ └── com │ │ │ └── example │ │ │ └── common │ │ │ └── model │ │ │ └── StreamDataEvent.kt │ │ └── resources │ │ └── application.yml ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle.kts └── websocket-server │ ├── .gitignore │ ├── build.gradle.kts │ ├── settings.gradle.kts │ └── src │ ├── main │ ├── kotlin │ │ └── com │ │ │ └── example │ │ │ └── websocket │ │ │ ├── WebsocketServerApplication.kt │ │ │ ├── config │ │ │ ├── RedisConfig.kt │ │ │ ├── RedisStreamConfig.kt │ │ │ └── WebSocketConfig.kt │ │ │ ├── controller │ │ │ ├── NotificationController.kt │ │ │ └── WebsocketController.kt │ │ │ ├── model │ │ │ ├── BroadcastEvent.kt │ │ │ └── NewMessageRequest.kt │ │ │ └── service │ │ │ ├── RedisBroadcastService.kt │ │ │ ├── RedisStreamConsumer.kt │ │ │ └── RedisStreamProducer.kt │ └── resources │ │ └── application.yml │ └── test │ └── kotlin │ └── com │ └── example │ └── websocket │ └── WebsocketServerApplicationTests.kt ├── LICENSE ├── README.md └── docs └── diagram.drawio /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | .vscode -------------------------------------------------------------------------------- /01-basic-websocket-server/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/01-basic-websocket-server/.gitignore -------------------------------------------------------------------------------- /01-basic-websocket-server/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/01-basic-websocket-server/README.md -------------------------------------------------------------------------------- /01-basic-websocket-server/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/01-basic-websocket-server/build.gradle.kts -------------------------------------------------------------------------------- /01-basic-websocket-server/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/01-basic-websocket-server/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /01-basic-websocket-server/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/01-basic-websocket-server/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /01-basic-websocket-server/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/01-basic-websocket-server/gradlew -------------------------------------------------------------------------------- /01-basic-websocket-server/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/01-basic-websocket-server/gradlew.bat -------------------------------------------------------------------------------- /01-basic-websocket-server/settings.gradle.kts: -------------------------------------------------------------------------------- 1 | rootProject.name = "websocker-server" 2 | -------------------------------------------------------------------------------- /01-basic-websocket-server/src/main/kotlin/com/example/websocket/WebsocketServerApplication.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/01-basic-websocket-server/src/main/kotlin/com/example/websocket/WebsocketServerApplication.kt -------------------------------------------------------------------------------- /01-basic-websocket-server/src/main/kotlin/com/example/websocket/config/RedisConfig.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/01-basic-websocket-server/src/main/kotlin/com/example/websocket/config/RedisConfig.kt -------------------------------------------------------------------------------- /01-basic-websocket-server/src/main/kotlin/com/example/websocket/config/WebSocketConfig.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/01-basic-websocket-server/src/main/kotlin/com/example/websocket/config/WebSocketConfig.kt -------------------------------------------------------------------------------- /01-basic-websocket-server/src/main/kotlin/com/example/websocket/controller/NotificationController.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/01-basic-websocket-server/src/main/kotlin/com/example/websocket/controller/NotificationController.kt -------------------------------------------------------------------------------- /01-basic-websocket-server/src/main/kotlin/com/example/websocket/controller/WebsocketController.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/01-basic-websocket-server/src/main/kotlin/com/example/websocket/controller/WebsocketController.kt -------------------------------------------------------------------------------- /01-basic-websocket-server/src/main/kotlin/com/example/websocket/model/NewMessageRequest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/01-basic-websocket-server/src/main/kotlin/com/example/websocket/model/NewMessageRequest.kt -------------------------------------------------------------------------------- /01-basic-websocket-server/src/main/kotlin/com/example/websocket/service/RedisService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/01-basic-websocket-server/src/main/kotlin/com/example/websocket/service/RedisService.kt -------------------------------------------------------------------------------- /01-basic-websocket-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/01-basic-websocket-server/src/main/resources/application.yml -------------------------------------------------------------------------------- /01-basic-websocket-server/src/test/kotlin/com/example/websocket/WebsocketServerApplicationTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/01-basic-websocket-server/src/test/kotlin/com/example/websocket/WebsocketServerApplicationTests.kt -------------------------------------------------------------------------------- /02-scaling-websocket-server/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/.gitignore -------------------------------------------------------------------------------- /02-scaling-websocket-server/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/README.md -------------------------------------------------------------------------------- /02-scaling-websocket-server/backend-service/.gitignore: -------------------------------------------------------------------------------- 1 | build -------------------------------------------------------------------------------- /02-scaling-websocket-server/backend-service/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/backend-service/build.gradle.kts -------------------------------------------------------------------------------- /02-scaling-websocket-server/backend-service/settings.gradle.kts: -------------------------------------------------------------------------------- 1 | rootProject.name = "backend-service" 2 | -------------------------------------------------------------------------------- /02-scaling-websocket-server/backend-service/src/main/kotlin/com/example/backend/BackendApplication.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/backend-service/src/main/kotlin/com/example/backend/BackendApplication.kt -------------------------------------------------------------------------------- /02-scaling-websocket-server/backend-service/src/main/kotlin/com/example/backend/config/RedisStreamConfig.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/backend-service/src/main/kotlin/com/example/backend/config/RedisStreamConfig.kt -------------------------------------------------------------------------------- /02-scaling-websocket-server/backend-service/src/main/kotlin/com/example/backend/service/RedisStreamConsumer.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/backend-service/src/main/kotlin/com/example/backend/service/RedisStreamConsumer.kt -------------------------------------------------------------------------------- /02-scaling-websocket-server/backend-service/src/main/kotlin/com/example/backend/service/RedisStreamProducer.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/backend-service/src/main/kotlin/com/example/backend/service/RedisStreamProducer.kt -------------------------------------------------------------------------------- /02-scaling-websocket-server/backend-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/backend-service/src/main/resources/application.yml -------------------------------------------------------------------------------- /02-scaling-websocket-server/backend-service/src/test/kotlin/com/example/backend/BackendApplicationTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/backend-service/src/test/kotlin/com/example/backend/BackendApplicationTests.kt -------------------------------------------------------------------------------- /02-scaling-websocket-server/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/build.gradle.kts -------------------------------------------------------------------------------- /02-scaling-websocket-server/common-dto/.gitignore: -------------------------------------------------------------------------------- 1 | build -------------------------------------------------------------------------------- /02-scaling-websocket-server/common-dto/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/common-dto/build.gradle.kts -------------------------------------------------------------------------------- /02-scaling-websocket-server/common-dto/settings.gradle.kts: -------------------------------------------------------------------------------- 1 | rootProject.name = "common-dto" 2 | -------------------------------------------------------------------------------- /02-scaling-websocket-server/common-dto/src/main/kotlin/com/example/common/model/StreamDataEvent.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/common-dto/src/main/kotlin/com/example/common/model/StreamDataEvent.kt -------------------------------------------------------------------------------- /02-scaling-websocket-server/common-dto/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /02-scaling-websocket-server/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /02-scaling-websocket-server/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /02-scaling-websocket-server/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/gradlew -------------------------------------------------------------------------------- /02-scaling-websocket-server/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/gradlew.bat -------------------------------------------------------------------------------- /02-scaling-websocket-server/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/settings.gradle.kts -------------------------------------------------------------------------------- /02-scaling-websocket-server/websocket-server/.gitignore: -------------------------------------------------------------------------------- 1 | build -------------------------------------------------------------------------------- /02-scaling-websocket-server/websocket-server/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/websocket-server/build.gradle.kts -------------------------------------------------------------------------------- /02-scaling-websocket-server/websocket-server/settings.gradle.kts: -------------------------------------------------------------------------------- 1 | rootProject.name = "websocker-server" 2 | -------------------------------------------------------------------------------- /02-scaling-websocket-server/websocket-server/src/main/kotlin/com/example/websocket/WebsocketServerApplication.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/websocket-server/src/main/kotlin/com/example/websocket/WebsocketServerApplication.kt -------------------------------------------------------------------------------- /02-scaling-websocket-server/websocket-server/src/main/kotlin/com/example/websocket/config/RedisConfig.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/websocket-server/src/main/kotlin/com/example/websocket/config/RedisConfig.kt -------------------------------------------------------------------------------- /02-scaling-websocket-server/websocket-server/src/main/kotlin/com/example/websocket/config/RedisStreamConfig.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/websocket-server/src/main/kotlin/com/example/websocket/config/RedisStreamConfig.kt -------------------------------------------------------------------------------- /02-scaling-websocket-server/websocket-server/src/main/kotlin/com/example/websocket/config/WebSocketConfig.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/websocket-server/src/main/kotlin/com/example/websocket/config/WebSocketConfig.kt -------------------------------------------------------------------------------- /02-scaling-websocket-server/websocket-server/src/main/kotlin/com/example/websocket/controller/NotificationController.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/websocket-server/src/main/kotlin/com/example/websocket/controller/NotificationController.kt -------------------------------------------------------------------------------- /02-scaling-websocket-server/websocket-server/src/main/kotlin/com/example/websocket/controller/WebsocketController.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/websocket-server/src/main/kotlin/com/example/websocket/controller/WebsocketController.kt -------------------------------------------------------------------------------- /02-scaling-websocket-server/websocket-server/src/main/kotlin/com/example/websocket/model/BroadcastEvent.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/websocket-server/src/main/kotlin/com/example/websocket/model/BroadcastEvent.kt -------------------------------------------------------------------------------- /02-scaling-websocket-server/websocket-server/src/main/kotlin/com/example/websocket/model/NewMessageRequest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/websocket-server/src/main/kotlin/com/example/websocket/model/NewMessageRequest.kt -------------------------------------------------------------------------------- /02-scaling-websocket-server/websocket-server/src/main/kotlin/com/example/websocket/service/RedisBroadcastService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/websocket-server/src/main/kotlin/com/example/websocket/service/RedisBroadcastService.kt -------------------------------------------------------------------------------- /02-scaling-websocket-server/websocket-server/src/main/kotlin/com/example/websocket/service/RedisStreamConsumer.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/websocket-server/src/main/kotlin/com/example/websocket/service/RedisStreamConsumer.kt -------------------------------------------------------------------------------- /02-scaling-websocket-server/websocket-server/src/main/kotlin/com/example/websocket/service/RedisStreamProducer.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/websocket-server/src/main/kotlin/com/example/websocket/service/RedisStreamProducer.kt -------------------------------------------------------------------------------- /02-scaling-websocket-server/websocket-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/websocket-server/src/main/resources/application.yml -------------------------------------------------------------------------------- /02-scaling-websocket-server/websocket-server/src/test/kotlin/com/example/websocket/WebsocketServerApplicationTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/02-scaling-websocket-server/websocket-server/src/test/kotlin/com/example/websocket/WebsocketServerApplicationTests.kt -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/README.md -------------------------------------------------------------------------------- /docs/diagram.drawio: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bkjam/websocket-microservice/HEAD/docs/diagram.drawio --------------------------------------------------------------------------------