Sulman Logo
Back to Projects
Social Platform ProductProduction Ready

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

Backend
NestJSRabbitMQNode.js
Frontend
React NativeApollo ClientTypeScript
Database
MongoDB
Infrastructure
AWS S3DockerAPI Gateway

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

01

Delivered a production-ready microservices social platform

02

Enabled independent scaling of backend services

03

Simplified frontend integration through a unified GraphQL API

04

Established a strong foundation for real-time features

05

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