• Stars
    star
    417
  • Rank 101,202 (Top 3 %)
  • Language
    Go
  • License
    MIT License
  • Created about 3 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

πŸ•Š Twitter Clone developed using Go + Vue 3 + Vite + TailwindCSS + PostgreSQL + Redis

Twitter Clone

An attempt to recreate one of the largest social networking application Twitter.

Track the development progress here

Note: This is my first attempt at developing a distributed system, so any feedback would be greatly appreciated.

Services

  1. Edge Service (GraphQL)
  2. Media Service
  3. Notifications Service
  4. Search Service
  5. Timeline Service
  6. Tweet Service
  7. Web UI Service

Technologies Used

  1. Golang (Internal Services)
  2. Next.JS (Website UI)
  3. Kafka (Pub/Sub)
  4. Apache Spark (Analytics)
  5. PostgreSQL (Main Database)
  6. PgPool II (Database Load Balancer)
  7. Redis (Caching)
  8. Docker (Containerization)
  9. Nginx (Load Balancer)
  10. GraphQL (Edge Server / Frontend for Backend)
  11. ElasticSearch (Searching & Indexing)
  12. Firebase Cloud Messenger (Notification Service)

System Design

Functional Requirements

  1. Create Tweets (text, images, videos, etc)
  2. View Timeline
  3. Like tweets
  4. Retweet / Quote Retweet
  5. Follow others

Non-Functional Requirements

  1. Scalable & Efficient
  2. High Availability

Optional Requirements

  1. Metrics and analytics
  2. Notifications
  3. Observability & Monitoring (Prometheus, Grafana, Jaeger, etc)

Database Schema

How to run locally

Check here on how to run locally

More Repositories

1

sture

🧱 Sture is a collection of data structures based on Go 1.18+ Generics (Stack, Queue, Linked List, etc.)
Go
34
star
2

kvstore

πŸ—„οΈkvstore is an experimental in-memory database server compatible with the redis protocol (RESP).
Go
17
star
3

mern-markdown-blog

🌌 MERN Stack Blogging Application with Dockerization
JavaScript
9
star
4

juanchristian.com

🌐 My personal website made with Next.JS and TailwindCSS
TypeScript
7
star
5

binus-discord-bot

A Binus University discord companion bot for getting class schedules, assignments, etc. (WIP)
TypeScript
6
star
6

hashtable

Very simple, idiomatic, and thread-safe implementation of Hashtables for Golang
Go
4
star
7

snowflake

❄️ Simple twitter's snowflake uniquely identifiable descriptors (IDs) format generator for Go
Go
4
star
8

go-translate

Google Translate via CLI with go
Go
3
star
9

Instagram-Clone

Vue
3
star
10

juanc.me

My personal website source code. Developed with GatsbyJS and TailwindCSS
TypeScript
3
star
11

advent-of-code-2022

C++
2
star
12

HotPotatoC

2
star
13

cpp-datastructure

Don't mind me, just trying to learning modern c++
C++
2
star
14

kattis

Kattis archive solutions in C++
C++
2
star
15

cpp

C++
1
star
16

c

C
1
star
17

covinfo

Covinfo is a place where you can view the novel coronavirus 2019 worldwide cases and demographics. https://covinfo-site.netlify.app/
Vue
1
star
18

2D-RayCasting

A very simple 2D Raycasting experiment using HTML5 Canvas
TypeScript
1
star
19

tts-discord

A simple text-to-speech discord bot using Streamlab's voices.
JavaScript
1
star
20

big-data-exam

This is not necessary for the exam but, seems like a fun thing to do :) (2501994771 - LA01)
Go
1
star
21

Mux-REST

Simple rest api with mux router and mock json data (Course from traversy)
Go
1
star
22

uci_contact_lense

Jupyter Notebook
1
star
23

numerical-analysis

Numerical methods in python
Python
1
star
24

algorithm-bootcamp-tht

Algorithm Bootcamp - Take home Tests
C++
1
star
25

Mux-Mongo

A REST API client built with mux router and mongo-driver
Go
1
star
26

Class-Activation-Map

Jupyter Notebook
1
star