How izumidkc/microservices-project works
This is a Spring microservices backend for a social network, with an additional farming game. The main user workflow enters through the API Gateway, reaches user and post services, and supports profiles/follows, feed and post interactions, with notifications sent by the notification service. Chat and game are distinct capabilities. Source excerpts show several internal service calls; gateway routing and service discovery are documented in the README, while some service wiring and storage details are not sampled.
Main entry points: PostService.java Posts and Feed · ApiGatewayApplication.java API Gateway · PostController.java Post API · CommentService.java Comments
Components 25
Platform Entry
- API Gateway
api-gateway/src/main/java/com/social/api_gateway/ApiGatewayApplication.java - Service Discovery
discovery-server/src/main/java/com/social/discovery_server/DiscoveryServerApplication.java
Users and Reports
- User API
user-service/src/main/java/com/social/user_service/controller/UserController.java - Profiles and Follows
user-service/src/main/java/com/social/user_service/service/UserService.java - User Data
user-service/src/main/java/com/social/user_service/repository/AppUserRepository.java - User Reports
user-service/src/main/java/com/social/user_service/service/UserReportService.java
Social Content
- Post API
post-service/src/main/java/com/social/post_service/controller/PostController.java - Posts and Feed
post-service/src/main/java/com/social/post_service/service/PostService.java - Post Data
post-service/src/main/java/com/social/post_service/repository/PostRepository.java - Comments
post-service/src/main/java/com/social/post_service/service/CommentService.java - Comment Data
post-service/src/main/java/com/social/post_service/repository/CommentRepository.java - Post Reports
post-service/src/main/java/com/social/post_service/service/ReportService.java - User Client
post-service/src/main/java/com/social/post_service/client/UserClient.java - Notification Client
post-service/src/main/java/com/social/post_service/client/NotificationClient.java
Realtime Messaging
- Notification API
notification-service/src/main/java/com/social/notification_service/controller/NotificationController.java - Notification Delivery
notification-service/src/main/java/com/social/notification_service/service/NotificationService.java - Notification Data
notification-service/src/main/java/com/social/notification_service/repository/NotificationRepository.java - Chat API
chat-service/src/main/java/com/social/chat_service/controller/ChatController.java - Chat Messages
chat-service/src/main/java/com/social/chat_service/repository/ChatMessageRepository.java
Farm Game
- Game API
game-service/src/main/java/com/social/game_service/controller/GameController.java - Farm Gameplay
game-service/src/main/java/com/social/game_service/service/GameService.java - Farm Data
game-service/src/main/java/com/social/game_service/repository/FarmRepository.java - Plant Config Cache
game-service/src/main/java/com/social/game_service/service/PlantDataManager.java - Plant Config Data
game-service/src/main/java/com/social/game_service/repository/PlantConfigRepository.java
Other components
- Social User
Connections 29
- Social User → API Gateway: sends requests
- API Gateway → Service Discovery: uses discovery
- API Gateway → User API: routes requests
- API Gateway → Post API: routes requests
- User API → Profiles and Follows: delegates to
user-service/src/main/java/com/social/user_service/controller/UserController.java - Profiles and Follows → User Data: reads and writes
user-service/src/main/java/com/social/user_service/service/UserService.java - User Reports → User Data: reads users
user-service/src/main/java/com/social/user_service/service/UserReportService.java - Post API → Posts and Feed: delegates to
post-service/src/main/java/com/social/post_service/controller/PostController.java - Post API → Comments: delegates to
post-service/src/main/java/com/social/post_service/controller/PostController.java - Post API → User Client: resolves user IDs
post-service/src/main/java/com/social/post_service/controller/PostController.java - Posts and Feed → Post Data: reads and writes
post-service/src/main/java/com/social/post_service/service/PostService.java - Posts and Feed → Comment Data: reads and writes
post-service/src/main/java/com/social/post_service/service/PostService.java - Posts and Feed → User Client: looks up users
post-service/src/main/java/com/social/post_service/service/PostService.java - Posts and Feed → Notification Client: sends alerts
post-service/src/main/java/com/social/post_service/service/PostService.java - Comments → Comment Data: reads and writes
post-service/src/main/java/com/social/post_service/service/CommentService.java - Comments → Post Data: updates counts
post-service/src/main/java/com/social/post_service/service/CommentService.java - Comments → User Client: fetches author details
post-service/src/main/java/com/social/post_service/service/CommentService.java - Post Reports → Post Data: reads posts
post-service/src/main/java/com/social/post_service/service/ReportService.java - Notification API → Notification Delivery: delegates to
notification-service/src/main/java/com/social/notification_service/controller/NotificationController.java - Notification Delivery → Notification Data: saves notifications
notification-service/src/main/java/com/social/notification_service/service/NotificationService.java - Notification Client → Notification API: requests delivery
- Chat API → Chat Messages: reads and writes
chat-service/src/main/java/com/social/chat_service/controller/ChatController.java - Social User → Chat API: chats and marks seen
- Social User → Game API: plays farming game
- Game API → Farm Gameplay: delegates gameplay
game-service/src/main/java/com/social/game_service/controller/GameController.java - Game API → Plant Config Cache: gets and reloads config
game-service/src/main/java/com/social/game_service/controller/GameController.java - Farm Gameplay → Farm Data: reads and saves farms
game-service/src/main/java/com/social/game_service/service/GameService.java - Farm Gameplay → Plant Config Cache: gets plant config
game-service/src/main/java/com/social/game_service/service/GameService.java - Plant Config Cache → Plant Config Data: loads configs
game-service/src/main/java/com/social/game_service/service/PlantDataManager.java