Skip to content

Proposal

Bijing Tang edited this page Nov 5, 2025 · 7 revisions

A Distributed Social Media Platform

Project Overview

We plan to build a distributed social media platform that demonstrates key concepts from CS6650.

System Architecture

The platform consists of 4 core microservices: User Service (authentication, profiles), Post Service (content management), Social Graph Service (relationships), and Timeline Service (feed generation). Services communicate via REST APIs with asynchronous messaging through AWS SQS for write-heavy operations.

Technology Stack

Backend Framework

  • Go + Gin

Data Storage

  • PostgreSQL(RDS) for relational data
  • AWS Neptune for social relationships
  • DynamoDB for timeline storage
  • Redis ElastiCache for caching and performance optimization

Infrastructure

  • AWS ECS Fargate
  • Application Load Balancer (ALB)
  • Terraform

Messaging

  • Amazon SQS/SNS for asynchronous service communication

Experiments Outline (Fan-out Algorithm Performance Comparison)

Comparing 3 Fan-out algorithms

Metrics:

  • Post creation latency
  • Timeline generation time
  • Database operations count
  • Storage overhead
  • Throughput scaling

Parameters

  • User Scale: 5k, 25k, 100k
  • Follower Distribution:
Attribute Regular Users Influencers Celebrities
Percentage 85% 14% 1%
Follower Count 10-100 100-50,000 50,000-500,000
Following Count 50-200 100-500 50-200
  • Read-Write Ratio: 9:1
  • Concurrent User Count: 20%, 50%, 80%
  • Test Duration: 30min(25min Steady + 5min Burst)

Clone this wiki locally