Skip to content

AhlamBCoding/Twitter-Backend

Repository files navigation

Microservice-based Tweeting Platform

Microservices crafted to construct a Twitter-like platform. Each microservice is responsible for distinct functionalities, and communication is facilitated using RabbitMQ, functioning as the event bus.

Microservices Overview

  1. User Service:

    • Using Java Spring boot
    • Handles user registration, authentication, and profile management.
  2. Tweet Service:

    • Using Python (Flask)
    • Manages the creation, retrieval, and deletion of tweets.
  3. Timeline Service: -

    • Python (Flask)
    • Aggregates and serves personalized timelines for users.
  4. Follow Service: -

    • Using GO Lang
    • Manages relationships between users, including following and followers.
  5. Gateway Service: -

    • Acts as an API gateway, routing requests to appropriate microservices and handling authentication.
  6. Fanout Service: -

  • Manages subscriptions and broadcasts events to subscribers.

Architecture

new architecture

Technologies Used

  • Programming Languages: Java, Python, Go
  • Databases: MariaDB
  • Event Bus: RabbitMQ

Running in Kubernetes

Docker Desktop

kubernetes

Terminal

kubernetes terminal

Output

twitter_ui

API Endpoints

Usage

  • docker-compose up -d
  • kubectl apply -f kube_man.yaml
  • kubectl apply -f service.yaml

Navigate to UI and npm start

License

this software is set to be open-source

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •