How b-yte/comeback-room-backend works
COMEBACK ROOM is a fan-focused backend for scheduled, synchronized group video viewing, with chat, reactions, polls, and other participation features. The principal documented journey is fans joining a scheduled room and participating together; authentication is the clearest sampled HTTP workflow: login or refresh requests pass through the auth controller and service to issue access and refresh tokens. Kafka is documented as the shared internal event channel for chat, reactions, and room reports. Several product areas are represented only by the tree and README, so their implementation links are left unverified rather than inferred.
Main entry points: AuthService.java Auth service · WatchingRoom.java Room lifecycle · RoomActivityProducer.java Activity producer · AuthController.java Auth API
Components 21
Identity & access
- Auth API
src/main/java/com/comebackroom/domain/auth/controller/AuthController.java - Auth service
src/main/java/com/comebackroom/domain/auth/service/AuthService.java - Member accounts
src/main/java/com/comebackroom/domain/member/entity/Member.java - Refresh tokens
src/main/java/com/comebackroom/domain/auth/repository/RefreshTokenRepository.java - JWT security
src/main/java/com/comebackroom/global/security/jwt/JwtTokenProvider.java
Viewing rooms
- Room lifecycle
src/main/java/com/comebackroom/domain/watchingroom/entity/WatchingRoom.java - Room persistence
src/main/java/com/comebackroom/domain/watchingroom/repository/WatchingRoomRepository.java - Room participants
src/main/java/com/comebackroom/domain/watchingroom/repository/RoomParticipantRepository.java - Room discovery tags
src/main/java/com/comebackroom/domain/tag/repository/TagRepository.java
Fan participation
- Chat
src/main/java/com/comebackroom/domain/chat/handler/ChatActivityHandler.java - Reactions
src/main/java/com/comebackroom/domain/reaction/handler/ReactionActivityHandler.java - Room polls
src/main/java/com/comebackroom/domain/poll/repository/PollRepository.java - Notifications
src/main/java/com/comebackroom/domain/notification/repository/NotificationRepository.java
Activity & reporting
- Room reports
src/main/java/com/comebackroom/domain/report/handler/RoomClosedActivityHandler.java - Report data
src/main/java/com/comebackroom/domain/report/repository/ReportRepository.java
Persistence & messaging
- Activity producer
src/main/java/com/comebackroom/global/kafka/RoomActivityProducer.java - Room activity topic
- Activity consumer
src/main/java/com/comebackroom/global/kafka/RoomActivityConsumer.java - Activity dispatcher
src/main/java/com/comebackroom/global/kafka/RoomActivityDispatcher.java - Typed handlers
src/main/java/com/comebackroom/global/kafka/RoomActivityHandler.java
Other components
- Fan
Connections 20
- Fan → Auth API: requests tokens
- Auth API → Auth service: calls
src/main/java/com/comebackroom/domain/auth/controller/AuthController.java - Auth service → Member accounts: looks up
src/main/java/com/comebackroom/domain/auth/service/AuthService.java - Auth service → Refresh tokens: reads and saves
src/main/java/com/comebackroom/domain/auth/service/AuthService.java - Auth service → JWT security: issues access token
src/main/java/com/comebackroom/domain/auth/service/AuthService.java - Fan → Room lifecycle: joins scheduled viewing
- Room lifecycle → Room persistence: persists lifecycle
src/main/java/com/comebackroom/domain/watchingroom/repository/WatchingRoomRepository.java - Room lifecycle → Room participants: tracks attendance
- Room lifecycle → Room discovery tags: supports discovery
- Fan → Chat: chats in room
- Fan → Reactions: reacts in room
- Fan → Room polls: votes in room
- Chat → Activity producer: publishes events
- Reactions → Activity producer: publishes events
- Activity producer → Room activity topic: sends messages
- Room activity topic → Activity consumer: delivers messages
- Activity consumer → Activity dispatcher: dispatches
- Activity dispatcher → Typed handlers: routes by type
- Typed handlers → Room reports: handles room closure
src/main/java/com/comebackroom/domain/report/handler/RoomClosedActivityHandler.java - Room reports → Report data: creates report