How kliodt/vacancy-service-b works
This is a Spring-based vacancy-publication microservice platform. The main user workflow enters through the API gateway, uses account or organization services for identity and ownership, then creates, searches, or responds to vacancies; user profiles can also manage favorite vacancies and upload files. Kafka carries lifecycle and response events to dependent services, while the notification service pushes relevant events over WebSockets. The README documents discovery, centralized configuration, and gateway routing; only selected service internals were sampled, so detailed wiring for those and other documented capabilities is not inferred.
Main entry points: GatewayServiceApplication.java API gateway · kafka/KafkaConsumerService.java Vacancy event consumer · kafka/KafkaConsumerService.java File event consumer · VacancyController.java Vacancy and response APIs
Components 29
Platform and entry
- API gateway
gatewayService/src/main/java/com/vacancy/gateway/GatewayServiceApplication.java - Service discovery
eurekaServer/src/main/java/com/vacancy/eureka/EurekaServerApplication.java - Central config
configServer/src/main/java/com/vacancy/config/ConfigServerApplication.java
Accounts and organizations
- User and auth API
userService/src/main/java/com/vacancy/user/controller/UserController.java - User operations
userService/src/main/java/com/vacancy/user/service/UserServiceImpl.java - User data
userService/src/main/java/com/vacancy/user/repository/UserRepository.java - Organization API
organizationService/src/main/java/com/vacancy/organization/controller/OrganizationController.java - Organization operations
organizationService/src/main/java/com/vacancy/organization/service/OrganizationServiceImpl.java - Organization data
organizationService/src/main/java/com/vacancy/organization/repository/OrganizationRepository.java
Vacancies and files
- Vacancy and response APIs
vacancyService/src/main/java/com/vacancy/vacancy/controller/VacancyController.java - Vacancy operations
vacancyService/src/main/java/com/vacancy/vacancy/service/VacancyServiceImpl.java - Application responses
vacancyService/src/main/java/com/vacancy/vacancy/service/UserVacancyResponseServiceImpl.java - Vacancy data
vacancyService/src/main/java/com/vacancy/vacancy/repository/VacancyRepository.java - Response data
vacancyService/src/main/java/com/vacancy/vacancy/repository/UserVacancyResponseRepository.java - File API
fileService/src/main/java/com/vacancy/files/controller/FileController.java - File operations
fileService/src/main/java/com/vacancy/files/service/FileServiceImpl.java - File metadata
fileService/src/main/java/com/vacancy/files/repository/FileRepository.java - File content storage
fileService/src/main/java/com/vacancy/files/service/FileServiceImpl.java
Events and notifications
- Kafka topics
- User event producer
userService/src/main/java/com/vacancy/user/kafka/KafkaProducerService.java - Organization event producer
organizationService/src/main/java/com/vacancy/organization/kafka/KafkaProducerService.java - Vacancy event producer
vacancyService/src/main/java/com/vacancy/vacancy/kafka/KafkaProducerService.java - Vacancy event consumer
vacancyService/src/main/java/com/vacancy/vacancy/kafka/KafkaConsumerService.java - File event consumer
fileService/src/main/java/com/vacancy/files/kafka/KafkaConsumerService.java - Notification listeners
notificationService/src/main/java/com/vacancy/notification/kafka/VacancyResponseCreatedListener.java - WebSocket push
notificationService/src/main/java/com/vacancy/notification/websocket/WebSocketPushService.java
Other components
- Applicant
- Organization user
- Realtime clients
Connections 31
- Applicant → API gateway: sends requests
- Organization user → API gateway: sends requests
- API gateway → User and auth API: routes requests
- API gateway → Organization API: routes requests
- API gateway → Vacancy and response APIs: routes requests
- API gateway → File API: routes requests
- User and auth API → User operations: invokes
- User operations → User data: reads and writes
- Organization API → Organization operations: invokes
- Organization operations → Organization data: reads and writes
- Vacancy and response APIs → Vacancy operations: invokes
- Vacancy and response APIs → Application responses: invokes
- Vacancy operations → Vacancy data: reads and writes
- Application responses → Response data: reads and writes
- File API → File operations: invokes
- File operations → File metadata: reads and writes
- File operations → File content storage: stores content
- User event producer → Kafka topics: publishes events
- Organization event producer → Kafka topics: publishes events
- Vacancy event producer → Kafka topics: publishes events
- Vacancy event consumer → Kafka topics: consumes events
- File event consumer → Kafka topics: consumes events
- Notification listeners → Kafka topics: consumes events
- Vacancy event consumer → Response data: deletes responses
- Vacancy event consumer → Vacancy data: deletes vacancies
- File event consumer → File metadata: deletes metadata
- File event consumer → File content storage: deletes content
- Notification listeners → WebSocket push: dispatches notifications
- WebSocket push → Realtime clients: pushes messages
- API gateway → Service discovery: discovers services
- API gateway → Central config: loads configuration