Social Commerce Platform (Intro)
Nexgate is a unified social commerce platform that combines eCommerce, event management, and social networking into a single ecosystem. Built for the East African market, Nexgate enables users to buy, sell, connect, and experience — all in one place.
The Concept
Nexgate reimagines how commerce happens online. Instead of separating shopping, events, and social media into different apps, Nexgate brings them together.
User creates → Product or Event → Posts to Social → Followers see in feed → Purchase or Book
A product isn't just listed in a shop — it's shared, liked, and commented on. An event isn't just a ticket page — it's a post that spreads organically through your network.
Platform Architecture
Nexgate follows a microservices architecture with nine independent services communicating via RabbitMQ message broker and backed by PostgreSQL databases.
Core Services
- Authentication — User registration, login, JWT tokens, OAuth, device management
- User Profile — Profiles, followers/following, privacy settings, trust scores
- File Manager — Media uploads, image processing, BlurHash, video transcoding via FFmpeg
- Payment — Payment methods, M-Pesa/Selcom/Tembo Plus integration, escrow, transactions
- Direct Message — Real-time private messaging, conversations, media sharing
Business Services
- E-Commerce — Shops, products, orders, cart, checkout, reviews, seller verification
- E-Events — Event creation, ticketing, RSA-signed tickets, check-ins, organizer ratings
- E-Social — Posts, feeds, likes, comments, reposts, polls, mentions, hashtags
External Service
- Notification — Push notifications, in-app alerts, email, SMS (async via RabbitMQ)
Architecture Diagram
Service Relationships
| Service | Role | Connects To |
|---|---|---|
| Authentication | Identity, tokens, sessions | Redis, PostgreSQL Core, RabbitMQ |
| User Profile | Profiles, follows, trust scores | PostgreSQL Core, RabbitMQ |
| File Manager | Media uploads, processing | FFmpeg, MinIO, PostgreSQL Core |
| Payment | Transactions, escrow | M-Pesa, Selcom, Tembo Plus, PostgreSQL Core, RabbitMQ |
| Direct Message | Private conversations | PostgreSQL Core, RabbitMQ |
| E-Commerce | Shops, products, orders | E-Social (embed products in posts), PostgreSQL Core, RabbitMQ |
| E-Events | Events, tickets, check-ins | E-Social (embed events in posts), PostgreSQL Core, RabbitMQ |
| E-Social | Posts, feeds, interactions | E-Commerce, E-Events (receives embeds), PostgreSQL Core, RabbitMQ |
| Notification | Push, email, SMS | RabbitMQ (consumes events), PostgreSQL Notif |
Data Flow Summary
| Flow | Path |
|---|---|
| User creates product | E-Commerce → Post to E-Social → Followers see in feed |
| User creates event | E-Events → Post to E-Social → Followers see in feed |
| User uploads media | File Manager → FFmpeg (if video) → MinIO → BlurHash generated |
| User makes payment | Payment → External Provider (M-Pesa/Selcom/Tembo) → Callback → Update order |
| Any action triggers notification | Service → RabbitMQ → Notification Service → Push/Email/SMS |
Infrastructure Components
| Component | Purpose |
|---|---|
| PostgreSQL (Core) | Shared DB for Auth, User, File, Payment, DM, E-Commerce, E-Events, E-Social |
| PostgreSQL (Notif) | Separate DB for Notification service |
| Redis | Session storage, caching, rate limiting |
| RabbitMQ | Async messaging, triggers notifications |
| MinIO | S3-compatible object storage for all media |
| FFmpeg | Video transcoding, thumbnails, compression |
Tech Stack
| Layer | Technology |
|---|---|
| Backend | Java 21, Spring Boot 3.x |
| Database | PostgreSQL (Core + Notification) |
| Cache | Redis |
| Messaging | RabbitMQ |
| Storage | MinIO (S3-compatible) |
| Media Processing | FFmpeg |
| Payments | M-Pesa, Selcom, Tembo Plus |
| Security | JWT, RSA signatures, device fingerprinting |

No comments to display
No comments to display