twitter-microservices icon indicating copy to clipboard operation
twitter-microservices copied to clipboard

Repository to recreate the microservices architecture of Twitter


Logo

Repository to recreate the microservices architecture of Twitter.
Explore the docs »

Report Bug · Request Feature

Jean Jacques Barros Repository size GitHub last commit License GitHub Pull Requests Stargazers

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

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

  1. The users can post new messages or tweets (this is a write operation).

  2. The size of a tweet is 140 characters at most.

  3. A user can delete his tweets but not update/edit his posted tweets (this is a write operation).

  4. The users can mark favorite tweets (write operation).

  5. Each user have a personalized timeline with must recent tweets

Diagrams

Logo

Contact

Linkedin | Github | Medium | Email

Project Link: https://github.com/jjeanjacques10/twitter-microservices


Developed by Jean Jacques Barros