Microservices-Based Social Platform
A scalable, event-driven social platform designed to connect users through posts, groups, maps, and real-time interactions using a modern microservices architecture.
Project Overview
SocialTea is a full-scale social platform built using a microservices architecture to support user interactions such as posting content, media sharing, group participation, map-based discovery, and real-time social actions. The platform was designed to be modular, scalable, and production-ready, with a clear separation of concerns between authentication, users, posts, groups, media handling, and data aggregation. Both backend services and a mobile frontend were developed to support long-term growth and independent service evolution.
The Challenge
Building a modern social platform introduced several technical challenges: • Supporting multiple user roles (students, visitors, subscribers, admins) • Managing high interaction volume (posts, likes, comments, follows) • Handling media uploads securely and efficiently • Providing real-time-like behavior without tightly coupled services • Maintaining clean separation between frontend, gateway, and backend services A monolithic approach would limit flexibility and long-term scalability, making a distributed microservices solution the preferred design choice.
The Solution
SocialTea was built using a NestJS monorepo-based microservices architecture, where each domain operates as an independent service. Communication between services is handled asynchronously using RabbitMQ, while the frontend consumes a unified GraphQL API exposed via an API Gateway. The mobile application was built using React Native with TypeScript, consuming the GraphQL API via Apollo Client. It supports authentication flows, post creation with media and location, and group interactions.
System Architecture
Event-Driven Microservices
The platform consists of independent services (Auth, User, Post, Group, College, Media) communicating asynchronously via RabbitMQ. A centralized API Gateway aggregates these services into a unified GraphQL API for the React Native client.
Key Features
- Role-based authentication with JWT access & refresh tokens
- Public and group-based post feeds with media uploads (S3)
- Real-time notifications and social interactions (Likes, Comments)
- Group creation with join approvals and invite links
- Map-based discovery using geolocation for events
- Centralized logging and Swagger-documented REST APIs
Technology Stack
Challenges & Considerations
Distributed Data
Coordinating data across multiple independent services without tight coupling.
Async Workflows
Managing asynchronous message flows and preventing infinite reprocessing in RabbitMQ.
Media Lifecycle
Handling secure media uploads and cleanup across distributed services using AWS S3.
Impact & Outcomes
Delivered a production-ready microservices social platform
Enabled independent scaling of backend services
Simplified frontend integration through a unified GraphQL API
Established a strong foundation for real-time features
Created a flexible architecture suitable for future growth
Want to build something similar?
I help organizations build scalable, secure, and high-performance software systems.
Let's Talk Architecture