Oriyon Learning Management System
A production-grade cohort-based learning platform built using microservices architecture, handling 10,000+ concurrent students.
High ingestion load, legacy limits & timeouts.
Decoupled microservices, event-driven streaming.
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.