Back to Projects
SaaS Platform
8 min read
February 2024

Oriyon Learning Management System

A production-grade cohort-based learning platform built using microservices architecture, handling 10,000+ concurrent students.

RabbitMQPostgreSQLDockerAPI GatewayJWT AuthRedisNext.jsNode.js
Challenge

High ingestion load, legacy limits & timeouts.

Architecture

Decoupled microservices, event-driven streaming.

Result

99.9% uptime, reduced latency by over 80%.


Project Overview

Oriyon LMS is a modern cohort-based learning management system designed to support institutions delivering interactive, structured online courses. Built from the ground up using a microservices architecture, the system is designed to handle high loads, support real-time user collaboration, and manage complex learning workflows.

---

The Challenge

Educational institutions faced severe limitations with monolithic legacy systems during cohort launches. These launch periods triggered massive spikes in concurrent traffic, leading to:
- Database Bottlenecks: High contention on session and progress-tracking tables.
- Latency & Timeouts: Live interaction and assessment submissions timed out under high load.
- Scaling Complexity: Inability to scale specific parts of the system (like code execution or video streaming) independently from administrative modules.

---

The Solution

To address these challenges, we designed and implemented a microservices-based system divided into 6 distinct services. By separating workloads, we could isolate heavy transactional processing from core app interactions.

Microservices Breakdown


1. User Identity & Auth Service: Handles JWT token generation and role-based access control.
2. Course Content Service: Serves course curricula, video resources, and reading materials (cached with Redis).
3. Cohort Management Service: Manages live schedule coordination, user registration, and cohort rosters.
4. Assessment & Grading Service: A secure execution sandbox for grading exercises and processing quiz results.
5. Real-time Collaboration Service: Connects chat rooms, live polls, and shared whiteboard states using WebSockets.
6. Notification Service: Broadcasts system events, cohort updates, and grading alerts asynchronously.

---

Technical Architecture

The architecture relies on an event-driven pattern with RabbitMQ serving as the central message bus.

Event-Driven Communication


When a student completes an assessment:
1. The Assessment Service processes the submission and publishes an assessment.graded event.
2. The Notification Service consumes the event to trigger email and in-app alerts.
3. The Cohort Service consumes the event to update the student's cohort leaderboard in real-time.

``
[Client App] ──> [API Gateway] ──> [Identity & Auth]
│
┌────────────────┴────────────────┐
▼ ▼
[Course Service] [Cohort Service]
│ │
▼ (Pub/Sub via RabbitMQ) ▼
[Notification Service] <────────── [Assessment Service]
``

---

Key Metrics & Outcomes

- Scale*: Handled *10,000+ concurrent active students without performance degradation during high-stakes exam launches.
- Availability*: Achieved *99.9% uptime across all services in production.
- Performance*: Reduced API response times by *45% by leveraging Redis caching for static course materials and dynamic leaderboards.
- Resilience: The decoupling of notification and grading services ensured that email service outages did not interfere with student assessment workflows.