Repository to recreate the microservices architecture of Twitter.
Explore the docs »
Report Bug
·
Request Feature
The first service created was Tweet Service. Microservice to record tweets and favorite actions.
Manage users profiles to control authentication and authorization actions.
Service to listener new tweets created and generate users' timeline in Redis
Service Discovery, it's where I'll register my microservices.
Gateway provides a flexible way of routing requests.
- Spring Boot
- Spring Cloud
- Java 17
- Kotlin
- Docker
- MySQL
- Redis
- Localstack
- DynamoDB
- SQS
- Heroku
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
Access postman collection here
- tweet (MySQL)
- tb_favorite_tweets (Dynamo)
- Table Schema: environment/dynamodb/tables.json
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
Linkedin | Github | Medium | Email
Project Link: https://github.com/jjeanjacques10/twitter-microservices
Developed by Jean Jacques Barros