# 2024uch1376-spec/distributed-job-platform architecture

> Architecture diagram of the GitHub repository 2024uch1376-spec/distributed-job-platform, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/2024uch1376-spec/distributed-job-platform
- Repository: https://github.com/2024uch1376-spec/distributed-job-platform

## Overview

This repository is a Spring-based microservices system for managing companies, jobs, and reviews. The principal user workflow is HTTP requests to those domain services; job clients also expose company and review lookups, while review changes are persisted and published for company-rating updates. The tree additionally contains service-registry and configuration-server applications. The README is empty, and only selected source was provided, so several internal implementation links and infrastructure wiring are intentionally omitted.

Main entry points: [`Job-Micro/Job-Micro/src/main/java/com/jobms/Job_Micro/job/JobServiceImpl.java`](https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Job-Micro/Job-Micro/src/main/java/com/jobms/Job_Micro/job/JobServiceImpl.java) (Job service), [`Reviews-Micro/Reviews-Micro/src/main/java/com/reviewsms/Reviews_Micro/review/ReviewServiceImpl.java`](https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Reviews-Micro/Reviews-Micro/src/main/java/com/reviewsms/Reviews_Micro/review/ReviewServiceImpl.java) (Review service), [`Reviews-Micro/Reviews-Micro/src/main/java/com/reviewsms/Reviews_Micro/review/ReviewController.java`](https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Reviews-Micro/Reviews-Micro/src/main/java/com/reviewsms/Reviews_Micro/review/ReviewController.java) (Review API), [`Company-Micro/Company-Micro/src/main/java/com/companyms/Company_Micro/company/CompanyController.java`](https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Company-Micro/Company-Micro/src/main/java/com/companyms/Company_Micro/company/CompanyController.java) (Company API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_domain["Domain services"]
  node_company_controller["Company API"]
  node_company_service["Company service"]
  node_company_repo["Company repository"]
  node_job_controller["Job API<br/>[JobController.java]"]
  node_job_service["Job service"]
  node_job_repo["Job repository<br/>[JobRepository.java]"]
  node_company_client["Company client<br/>[CompanyClient.java]"]
  node_review_client["Review client<br/>[ReviewClient.java]"]
  node_review_controller["Review API"]
  node_review_service["Review service"]
  node_review_repo["Review repository"]
  node_review_entity["Review data<br/>[Review.java]"]
end

subgraph group_messaging["Review messaging"]
  node_review_producer["Review publisher"]
  node_review_consumer["Rating consumer"]
  node_review_queue["Rating queue"]
end

subgraph group_platform["Service platform"]
  node_registry["Eureka registry"]
  node_config_server["Config server"]
end

node_user(("API caller"))
node_company_service_ext["Company service endpoint"]
node_rabbit["RabbitMQ"]

node_user -->|"HTTP requests"| node_company_controller
node_user -->|"HTTP requests"| node_job_controller
node_user -->|"HTTP requests"| node_review_controller
node_company_controller -->|"delegates"| node_company_service
node_job_controller -->|"delegates"| node_job_service
node_review_controller -->|"delegates"| node_review_service
node_job_service -->|"client calls"| node_company_client
node_job_service -->|"client calls"| node_review_client
node_company_client -.->|"HTTP lookup"| node_company_service_ext
node_review_client -.->|"HTTP lookup"| node_review_controller
node_review_service -->|"reads and writes"| node_review_repo
node_review_service -->|"publishes changes"| node_review_producer
node_review_producer -->|"sends message"| node_rabbit
node_rabbit -->|"routes message"| node_review_queue
node_review_queue -->|"delivers message"| node_review_consumer

click node_company_controller "https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Company-Micro/Company-Micro/src/main/java/com/companyms/Company_Micro/company/CompanyController.java"
click node_company_service "https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Company-Micro/Company-Micro/src/main/java/com/companyms/Company_Micro/company/CompanyServiceImpl.java"
click node_company_repo "https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Company-Micro/Company-Micro/src/main/java/com/companyms/Company_Micro/company/CompanyRepository.java"
click node_job_controller "https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Job-Micro/Job-Micro/src/main/java/com/jobms/Job_Micro/job/JobController.java"
click node_job_service "https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Job-Micro/Job-Micro/src/main/java/com/jobms/Job_Micro/job/JobServiceImpl.java"
click node_job_repo "https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Job-Micro/Job-Micro/src/main/java/com/jobms/Job_Micro/job/JobRepository.java"
click node_company_client "https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Job-Micro/Job-Micro/src/main/java/com/jobms/Job_Micro/job/clients/CompanyClient.java"
click node_review_client "https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Job-Micro/Job-Micro/src/main/java/com/jobms/Job_Micro/job/clients/ReviewClient.java"
click node_review_controller "https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Reviews-Micro/Reviews-Micro/src/main/java/com/reviewsms/Reviews_Micro/review/ReviewController.java"
click node_review_service "https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Reviews-Micro/Reviews-Micro/src/main/java/com/reviewsms/Reviews_Micro/review/ReviewServiceImpl.java"
click node_review_repo "https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Reviews-Micro/Reviews-Micro/src/main/java/com/reviewsms/Reviews_Micro/review/ReviewRepository.java"
click node_review_entity "https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Reviews-Micro/Reviews-Micro/src/main/java/com/reviewsms/Reviews_Micro/review/Review.java"
click node_review_producer "https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Reviews-Micro/Reviews-Micro/src/main/java/com/reviewsms/Reviews_Micro/messaging/ReviewMessageProducer.java"
click node_review_consumer "https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Company-Micro/Company-Micro/src/main/java/com/companyms/Company_Micro/messaging/ReviewMessageConsumer.java"
click node_review_queue "https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Company-Micro/Company-Micro/src/main/java/com/companyms/Company_Micro/messaging/RabbitMQConfiguration.java"
click node_registry "https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/ServiceReg/Service/src/main/java/com/serviceRegistry/Service/ServiceApplication.java"
click node_config_server "https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/EnableConfigServer/EnableConfigServer/src/main/java/com/configserver/EnableConfigServer/EnableConfigServerApplication.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_company_controller,node_company_service,node_company_repo,node_job_controller,node_job_service,node_job_repo,node_company_client,node_review_client,node_review_controller,node_review_service,node_review_repo,node_review_entity toneBlue
class node_review_producer,node_review_consumer,node_review_queue toneAmber
class node_registry,node_config_server,node_user toneMint
class node_company_service_ext,node_rabbit toneIndigo
```

## Components

### Domain services

- [Company API](https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Company-Micro/Company-Micro/src/main/java/com/companyms/Company_Micro/company/CompanyController.java): `Company-Micro/Company-Micro/src/main/java/com/companyms/Company_Micro/company/CompanyController.java`
- [Company service](https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Company-Micro/Company-Micro/src/main/java/com/companyms/Company_Micro/company/CompanyServiceImpl.java): `Company-Micro/Company-Micro/src/main/java/com/companyms/Company_Micro/company/CompanyServiceImpl.java`
- [Company repository](https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Company-Micro/Company-Micro/src/main/java/com/companyms/Company_Micro/company/CompanyRepository.java): `Company-Micro/Company-Micro/src/main/java/com/companyms/Company_Micro/company/CompanyRepository.java`
- [Job API](https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Job-Micro/Job-Micro/src/main/java/com/jobms/Job_Micro/job/JobController.java): `Job-Micro/Job-Micro/src/main/java/com/jobms/Job_Micro/job/JobController.java`
- [Job service](https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Job-Micro/Job-Micro/src/main/java/com/jobms/Job_Micro/job/JobServiceImpl.java): `Job-Micro/Job-Micro/src/main/java/com/jobms/Job_Micro/job/JobServiceImpl.java`
- [Job repository](https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Job-Micro/Job-Micro/src/main/java/com/jobms/Job_Micro/job/JobRepository.java): `Job-Micro/Job-Micro/src/main/java/com/jobms/Job_Micro/job/JobRepository.java`
- [Company client](https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Job-Micro/Job-Micro/src/main/java/com/jobms/Job_Micro/job/clients/CompanyClient.java): `Job-Micro/Job-Micro/src/main/java/com/jobms/Job_Micro/job/clients/CompanyClient.java`
- [Review client](https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Job-Micro/Job-Micro/src/main/java/com/jobms/Job_Micro/job/clients/ReviewClient.java): `Job-Micro/Job-Micro/src/main/java/com/jobms/Job_Micro/job/clients/ReviewClient.java`
- [Review API](https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Reviews-Micro/Reviews-Micro/src/main/java/com/reviewsms/Reviews_Micro/review/ReviewController.java): `Reviews-Micro/Reviews-Micro/src/main/java/com/reviewsms/Reviews_Micro/review/ReviewController.java`
- [Review service](https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Reviews-Micro/Reviews-Micro/src/main/java/com/reviewsms/Reviews_Micro/review/ReviewServiceImpl.java): `Reviews-Micro/Reviews-Micro/src/main/java/com/reviewsms/Reviews_Micro/review/ReviewServiceImpl.java`
- [Review repository](https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Reviews-Micro/Reviews-Micro/src/main/java/com/reviewsms/Reviews_Micro/review/ReviewRepository.java): `Reviews-Micro/Reviews-Micro/src/main/java/com/reviewsms/Reviews_Micro/review/ReviewRepository.java`
- [Review data](https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Reviews-Micro/Reviews-Micro/src/main/java/com/reviewsms/Reviews_Micro/review/Review.java): `Reviews-Micro/Reviews-Micro/src/main/java/com/reviewsms/Reviews_Micro/review/Review.java`

### Review messaging

- [Review publisher](https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Reviews-Micro/Reviews-Micro/src/main/java/com/reviewsms/Reviews_Micro/messaging/ReviewMessageProducer.java): `Reviews-Micro/Reviews-Micro/src/main/java/com/reviewsms/Reviews_Micro/messaging/ReviewMessageProducer.java`
- [Rating consumer](https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Company-Micro/Company-Micro/src/main/java/com/companyms/Company_Micro/messaging/ReviewMessageConsumer.java): `Company-Micro/Company-Micro/src/main/java/com/companyms/Company_Micro/messaging/ReviewMessageConsumer.java`
- [Rating queue](https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/Company-Micro/Company-Micro/src/main/java/com/companyms/Company_Micro/messaging/RabbitMQConfiguration.java): `Company-Micro/Company-Micro/src/main/java/com/companyms/Company_Micro/messaging/RabbitMQConfiguration.java`

### Service platform

- [Eureka registry](https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/ServiceReg/Service/src/main/java/com/serviceRegistry/Service/ServiceApplication.java): `ServiceReg/Service/src/main/java/com/serviceRegistry/Service/ServiceApplication.java`
- [Config server](https://github.com/2024uch1376-spec/distributed-job-platform/blob/main/EnableConfigServer/EnableConfigServer/src/main/java/com/configserver/EnableConfigServer/EnableConfigServerApplication.java): `EnableConfigServer/EnableConfigServer/src/main/java/com/configserver/EnableConfigServer/EnableConfigServerApplication.java`

### Other components

- **API caller**
- **Company service endpoint**
- **RabbitMQ**

## Connections

- API caller → Company API: HTTP requests
- API caller → Job API: HTTP requests
- API caller → Review API: HTTP requests
- Company API → Company service: delegates
- Job API → Job service: delegates
- Review API → Review service: delegates
- Job service → Company client: client calls
- Job service → Review client: client calls
- Company client → Company service endpoint: HTTP lookup
- Review client → Review API: HTTP lookup
- Review service → Review repository: reads and writes
- Review service → Review publisher: publishes changes
- Review publisher → RabbitMQ: sends message
- RabbitMQ → Rating queue: routes message
- Rating queue → Rating consumer: delivers message
