-
Notifications
You must be signed in to change notification settings - Fork 0
Jobs Division
PCBZ edited this page Nov 9, 2025
·
3 revisions
Objective: Compare Push vs Pull vs Hybrid fan-out algorithms in a distributed social media system
Team Size: 4 developers
Primary Responsibilities:
- PostgreSQL database design and operations
- User add and get
- API implementation:
POST /api/users,GET /api/users
Technology Stack:
- PostgreSQL/RDS
- Go + Gin framework
Primary Responsibilities:
- Neptune graph database design
- Follow relationship management
- API implementation:
POST /api/follow
Technology Stack:
- AWS Neptune
- Gremlin query language
- Go + TinkerPop driver
Primary Responsibilities:
- DynamoDB content storage design
- Post creation, storage, and retrieval
- API implementation:
POST /api/posts
Technology Stack:
- DynamoDB
- Go + AWS SDK
Key Deliverables:
- Post creation system with 3 different fan-out implementations
- Content storage and retrieval
Primary Responsibilities:
- Critical: Implementation of 3 fan-out algorithms (Push, Pull, Hybrid)
- Timeline generation and caching strategies
- API implementation:
GET /api/timeline/{user_id}
Technology Stack:
- DynamoDB (timeline storage)
- Redis (caching layer)
- Go + microservice calls
- 3 fan-out algorithm implementations
Key Deliverables:
- Push Model: Pre-computed timeline system
- Pull Model: Real-time timeline aggregation
- Hybrid Model: Smart strategy selection
| Service | Implementation |
|---|---|
| Post Service | Store post + trigger fan-out to all followers |
| Timeline Service | Receive batch writes + store in follower timelines |
| Service | Implementation |
|---|---|
| Post Service | Store post only (no fan-out) |
| Timeline Service | Real-time aggregation from followed users |
| Service | Implementation |
|---|---|
| Post Service | Conditional fan-out based on user type |
| Timeline Service | Mixed approach: pre-computed + real-time |
Responsibilities:
- Generate 5K/25K/100K user accounts
- Create user type distribution (Regular 85%, Influencer 14%, Celebrity 1%)
- Generate realistic user profiles
- Bulk user registration via
POST /api/users
Responsibilities:
- Generate power-law distributed follow relationships
- Regular Users: 10-100 followers
- Influencers: 1K-10K followers
- Celebrities: 50K-500K followers
- Implement Zipfian distribution algorithm
- Each person develops their individual service
- Define inter-service API contracts
- Person 4 coordinates inter-service calls
- Service mesh setup and testing
1. Person 1: Generate users β PostgreSQL
2. Person 3: Generate relationships β Neptune
3. Person 2 & 4: Use existing user/relationship data
4. Execute fan-out algorithm performance tests