A LinkedIn themed social platform built using Java and Spring Boot microservices, featuring scalable and distributed design with Kafka, Redis, Eureka, Docker, and centralized configuration and logging tools.
- Backend: Java, Spring Boot, Spring Cloud, Spring Data JPA
- Microservices: Eureka, Spring Cloud Config, Resilience4j
- Messaging: Apache Kafka
- Containers: Docker, Docker Compose
- Observability: ELK Stack, Zipkin
- Database: PostgreSQL, Neo4j
- Others: Redis, Kafka UI, Logstash, Maven
| Service Name | Description |
|---|---|
user-service |
Manages user profiles and authentication |
post-service |
Handles posts, likes, and comments |
connections-service |
Manages user connections (follow system) |
notification-service |
Sends notification and emails |
uploader-service |
Handles media uploads |
api-gateway |
Routes external requests to microservices |
discovery-server |
Eureka server for service registry |
config-server |
Centralized configuration management |
git clone https://github.com/premtsd-code/LinkedIn.git
cd LinkedInMake sure you have Docker and Docker Compose installed.
docker-compose up --buildThis will spin up all services including Kafka, Kafka UI, Eureka, Config Server, and your microservices.
LinkedIn/
├── api-gateway/
├── config-server/
├── connections-service/
├── discovery-server/
├── notification-service/
├── post-service/
├── uploader-service/
├── user-service/
├── logstash/
├── docker-compose.yml
└── .gitlab-ci.yml
- Centralized configs are managed via Spring Cloud Config Server
- Service discovery with Eureka
- Kafka is used for communication between microservices
- Redis can be used for caching user data or tokens
- Logging is routed to Logstash → Elasticsearch → Kibana
- Kafka UI: Available at
http://localhost:8090 - Eureka Dashboard: Usually
http://localhost:8761 - Zipkin:
http://localhost:9411 - Kibana: Accessible on
http://localhost:5601
