twitter-microservices
twitter-microservices copied to clipboard
Repository to recreate the microservices architecture of Twitter
Repository to recreate the microservices architecture of Twitter.
Explore the docs »
Report Bug
·
Request Feature
Tweet Service
The first service created was Tweet Service. Microservice to record tweets and favorite actions.
User Service
Manage users profiles to control authentication and authorization actions.
Timeline Service
Service to listener new tweets created and generate users' timeline in Redis
Eureka Service
Service Discovery, it's where I'll register my microservices.
Gateway Service
Gateway provides a flexible way of routing requests.
Technologies
- Spring Boot
- Spring Cloud
- Java 17
- Kotlin
- Docker
- MySQL
- Redis
- Localstack
- DynamoDB
- SQS
- Heroku
Get Started
Running Databases:
docker-compose up -d --build
- Access DynamoDb Admin: http://localhost:8001/
- Access Database Tweet: http://localhost:3306/
- Access Database User: http://localhost:3307/
Running applications:
## == Build ==
run.sh
# or
run.bat
## == Running ==
docker-compose -f docker-compose-app.yml up --build -d
- Gateway Service: http://localhost:9002
- Eureka Service: http://localhost:9000
Postman
Access postman collection here

Tables
- tweet (MySQL)
- tb_favorite_tweets (Dynamo)
- Table Schema: environment/dynamodb/tables.json
Functional Requirements
The reference to functional requirements is this article: Design Twitter — Microservices Architecture of Twitter Service
-
The users can post new messages or tweets (this is a write operation).
-
The size of a tweet is 140 characters at most.
-
A user can delete his tweets but not update/edit his posted tweets (this is a write operation).
-
The users can mark favorite tweets (write operation).
-
Each user have a personalized timeline with must recent tweets
Diagrams
Contact
Linkedin | Github | Medium | Email
Project Link: https://github.com/jjeanjacques10/twitter-microservices
Developed by Jean Jacques Barros