CASE STUDY Transportation · SaaS · Sri Lanka · 2023

Oh! Ride Sri Lanka’s First SaaS Ride-Hailing Platform

Drivers pay a flat monthly fee and keep 100% of every fare. Built from zero — 8 microservices, React Native, Spring Boot, Node.js, Python ML, Apache Kafka — live for 2+ years with zero major outages.

★★★★★  5.0 on Clutch & Google
 
Live 2+ years, zero major outages
Oh! Ride app — Sri Lanka's first SaaS ride-hailing platform
Year2023
ClientOXHorn
IndustryTransportation
PlatformiOS + Android + Web
Timeline12 Months
Team Size11 Specialists
Status Live
100% Driver Fare Retention
2yr+ Uninterrupted Uptime
<200ms Real-Time GPS Latency
8 Microservices in Production
Project Overview

Reimagining ride hailing with a fairer model.

A complete platform ecosystem built from zero — every service designed, built, and deployed within a single 12-month sprint.

Platform Architecture
Client Apps
Rider App Driver App Admin Portal
HTTPS + WebSocket
Gateway
API Gateway + WebSocket Layer — Node.js Fastify
gRPC + REST Service Calls
Services
Auth Trips Location Billing KYC ML Pricing
Async Domain Events
Event Bus
Apache Kafka on AWS MSK — Async Event Streaming
Reads and Writes
Data
PostgreSQL MongoDB Redis GEO AWS S3
Container Orchestration
Infra
AWS EKS Docker CloudWatch GitHub Actions

Oh! Ride is a full-scale ride-hailing platform built by NextGen Innovations for OXHorn — designed to fundamentally change how ride-hailing works in Sri Lanka. Unlike existing platforms that charge drivers a 15–30% commission on every trip, Oh! Ride introduced a SaaS subscription model: drivers pay a flat monthly fee and keep 100% of every fare they earn.

The platform was engineered from the ground up — 8 independent microservices, 6 independently deployed frontend modules, real-time GPS tracking via WebSocket and Redis GEO, ML-powered dynamic pricing using XGBoost, automated driver verification combining OpenCV face liveness and Tesseract OCR, and a fully white-label operator admin portal built with React 18 Module Federation.

Every layer was designed to scale to thousands of concurrent drivers and rides without performance degradation. The project spanned 12 months and required 11 specialists working in parallel across backend, mobile, ML, frontend, and infrastructure.

Oh! Ride has been live in production for over 2 years — zero major outages, zero downtime deployments. That is the standard we hold on every project we take on.

 
Challenges

Building an entire ecosystem from zero.

No prior codebase. No legacy system to extend. Every service designed and integrated in parallel within a single 12-month window.

 

Building from Absolute Zero

Every service — auth, trips, real-time location, billing, ML pricing, and driver verification — had to be designed and integrated in parallel with no legacy fallback and zero existing infrastructure.

 

Real-Time GPS at Scale

Sub-second position updates for hundreds of concurrent rides. Standard REST polling creates server overload. The platform needed persistent WebSocket connections with Redis GEO for thousands of simultaneous driver positions.

 

Dynamic Pricing Without Bias

Flat-rate fares are unfair at peak demand. The platform needed an intelligent pricing engine adjusting fares on real-time signals without any manual operator intervention.

 

Driver Identity Verification

Onboarding unverified drivers is a safety and legal risk. The system needed face liveness detection, NIC and licence OCR, and cross-reference validation — all without manual review per applicant.

 

Microservices Independence

A monolith would not scale to the needed load. Each domain needed independent deployability, its own failure isolation, and strict API contracts enforced from day one.

 

Multi-Team Admin Portal

Six functional areas needed separate team ownership and deployment cycles without risking the entire operator portal — fleet, billing, analytics, driver approvals, support, and configuration.

 
Our Solution

Production-grade engineering for real-world scale.

Cloud-native. Event-driven. Every engineering decision made for long-term stability and operational independence.

01

Real-Time Location Engine

Node.js Fastify manages persistent WebSocket connections streaming driver positions every 2 seconds. Redis GEO commands execute radius-based nearest-driver queries in under 5ms. A single node handles 2,000+ concurrent driver connections — the Kubernetes cluster scales horizontally for full fleet load.

Node.js Fastify WebSocket Redis GEO AWS ElastiCache
02

ML Dynamic Pricing with XGBoost

A standalone Python FastAPI microservice runs an XGBoost model trained on historical trip data, demand patterns, weather signals, and time-of-day inputs. The model retrains weekly on fresh production data to stay accurate as demand patterns evolve.

Python XGBoost FastAPI Scikit-learn
03

Computer Vision Driver Verification

A Python service combines OpenCV face liveness detection with Tesseract OCR for ID document parsing. The system performs facial match, extracts document data, validates licence expiry, and auto-approves in under 90 seconds — enabling rapid expansion without ops headcount growth.

OpenCV Tesseract OCR Python FastAPI
04

Automated Subscription Billing Engine

Spring Boot manages monthly billing cycles with automated retry flows, configurable grace periods, and driver account suspension and reinstatement logic. The operator never manually manages billing across hundreds of active driver accounts.

Java Spring Boot PayHere API Automated Recovery
05

Event-Driven Microservices via Apache Kafka

Kafka on AWS MSK serves as the inter-service event bus. Services publish domain events — trip.created, payment.confirmed, driver.verified — without direct coupling to any consumer. The platform remains fully operational even while individual services are redeploying.

Apache Kafka AWS MSK Event Sourcing
06

Independent Frontend Modules via Module Federation

React 18 with Webpack 5 Module Federation delivers 6 independently deployable admin portal modules. Performance-critical mobile features are implemented in native Android Kotlin and iOS Swift modules bridged into React Native.

React 18 React Native Android Kotlin iOS Swift Module Federation
 
Technology Stack

Every tool chosen with a clear reason.

No trend-chasing. Six technology domains, each with the right tool for the job — chosen for performance, team expertise, and long-term maintainability.

MOB
Mobile Applications
 
React Native

Shared codebase for Rider and Driver apps on iOS and Android. One team, one release cycle, near-native performance.

 
Native Modules — Android Kotlin & iOS Swift

Background GPS, push notifications, biometric authentication, and KYC camera access implemented natively and bridged into React Native.

 
Google Maps SDK

Live driver tracking, ETA calculation, route rendering, and pickup point selection integrated directly in both apps.

API
Backend Services
 
Java Spring Boot

Core business logic microservices — Trips, Auth, Billing, Driver Profiles, and KYC orchestration. Enterprise-grade reliability for complex transactional workloads.

 
Node.js with Fastify

Real-time communication gateway and WebSocket management. Handles 2,000+ concurrent connections efficiently at the concurrency level required.

 
Python with FastAPI

ML Pricing service and Computer Vision KYC pipeline. Python’s data science ecosystem made it the only sensible choice for intelligent processing.

RT
Real-Time & Events
 
WebSocket

Persistent two-way connections stream driver positions every 2 seconds and power in-app chat. HTTP polling latency eliminated entirely.

 
Redis GEO via AWS ElastiCache

In-memory geospatial indexing for nearest-driver queries. GEO radius commands run 10× faster than database-level geographic queries at this concurrency.

 
Apache Kafka via AWS MSK

Distributed event streaming for all inter-service communication. Guarantees delivery, supports full event replay, and decouples every microservice.

DB
Data & Storage
 
PostgreSQL via AWS Aurora

Core relational store for trips, billing records, and user accounts. Aurora provides managed high-availability with automatic failover.

 
MongoDB

Flexible document storage for driver profiles and operational logs where schema flexibility is needed across varying regional document types.

 
AWS S3

Secure, durable object storage for driver licence images, selfie captures, and all document uploads from the KYC verification pipeline.

ML
ML & Computer Vision
 
XGBoost

Dynamic pricing engine trained on historical trip data, demand patterns, weather signals, and time-of-day inputs. Retrains weekly on fresh production data.

 
OpenCV

Face liveness detection for driver KYC. Rejects spoofed or static photos before document verification proceeds — a critical security gate in the onboarding flow.

 
Tesseract OCR

Parses NIC and driving licence photos automatically — extracting name, number, and expiry. Enables hands-free driver onboarding in under 90 seconds.

OPS
Cloud & Infrastructure
 
AWS EKS & Kubernetes

Container orchestration across all 8 microservices. Auto-scaling, rolling deployments, health checks, and liveness probes ensure zero-downtime releases.

 
Docker

Every service containerised for identical dev-to-production environments, rapid developer onboarding, and reproducible deployments across the full cluster.

 
GitHub Actions CI/CD

Independent automated pipelines per microservice — build, test, and deploy. Teams release their own services without any coordination bottleneck.

 
Team

11 specialists. One vision.

Every role was purpose-filled. No generalists learning on the client’s time — each person owned their domain from day one.

PM
Project Manager

Scrum delivery, stakeholder management, sprint planning, risk mitigation, and weekly client demos across the full 12-month build.

UX
UI/UX Designers ×2

Figma prototypes, user journey mapping, mobile-first design systems for the Rider app, Driver app, and operator admin portal.

BE
Senior Backend Engineers ×2

Java Spring Boot microservices, API contract design, event-driven patterns with Kafka, and all service-to-service communication standards.

ML
ML Engineer

Python, XGBoost dynamic pricing model, OpenCV face liveness, Tesseract OCR pipeline, and FastAPI inference service architecture.

MOB
Mobile Engineers ×2

React Native shared codebase, native Android Kotlin and iOS Swift bridge modules, Google Maps SDK integration, and offline resilience patterns.

FE
Frontend Engineer

React 18 admin portal, Webpack 5 Module Federation architecture for 6 independent modules, API integration, and frontend performance profiling.

QA
Senior QA Engineers ×2

Functional and regression testing, load testing under simulated peak traffic, mobile device matrix coverage, and UAT coordination.

OPS
DevOps Engineer

AWS EKS cluster management, Kubernetes configuration, Docker containerisation, GitHub Actions pipelines, and CloudWatch monitoring.

 
Impact

Numbers that prove delivery.

Every requirement met. Every expectation exceeded. Every metric tracked since go-live.

 
100%

Driver fare retention via flat SaaS subscription

 
2yr+

Uninterrupted production uptime since launch

 
<200ms

Driver location broadcast latency to matched riders

 
90s

Automated driver KYC — face match, OCR, licence check

 
80%

Reduction in manual dispatch coordination time

 
2000+

Concurrent WebSocket connections per single node

 
Zero Commission Model — Live and Scaling

Drivers pay a predictable monthly fee and keep 100% of their earnings. This fundamentally fairer model drove strong driver adoption and retention from the first week of public launch in Sri Lanka.

 
80% Reduction in Dispatch Coordination Time

Automated real-time ride matching through the Trip Service eliminated manual dispatcher coordination entirely. What once needed a human operator is now handled end-to-end in under one second.

 
2+ Years of Uninterrupted Production Uptime

Kubernetes auto-healing, multi-AZ deployment on AWS, and circuit-breaker patterns have delivered continuous availability since launch. Zero major outages recorded to this date.

 
Automated Driver Onboarding Under 2 Minutes

The computer vision KYC pipeline processes standard applications without any manual review — face match, document OCR, and licence validation complete in 90 seconds, enabling city-by-city expansion without adding operations headcount.

 
Sub-200ms Real-Time Location Updates

WebSocket and Redis GEO architecture delivers driver position updates to riders in under 200ms. Dispatch confirmation completes in under one second — performance comparable to global-scale platforms at a fraction of the infrastructure cost.

“NextGen Innovations delivered beyond our expectations. Their team understood our vision, and the Oh! Ride app is a hit with users. Professional, efficient, and committed to success!”

Siva Vakeesan — CEO, OXHorn
Siva Vakeesan CEO, OXHorn
Conclusion

This is just the beginning.

Oh! Ride is more than a ride-hailing app. It is a complete rethink of who ride-hailing platforms are built for — placing drivers at the centre of the business model and replacing commission extraction with a transparent SaaS subscription structure that OXHorn now scales across Sri Lanka.

We delivered the entire technology stack — 8 microservices, 3 client applications, ML-powered dynamic pricing, computer vision driver verification, and independently deployed frontend modules — within 12 months. The product has been live for over 2 years without a major outage.

 
Case Studies

More Work We Are Proud Of

Mave — B2B Chat and Cashflow Platform

Mave — B2B Chat & Cashflow Platform

Real-time business communication merged with automatic cashflow intelligence. Delivered in 2 months with NLP transaction detection from natural language.

Read Case Study →
Servicemate — On-Demand Service Finder

Servicemate — On-Demand Service Finder

Mobile-first service marketplace — iOS, Android, and web admin — with real-time booking, live job tracking, and provider verification. Built in 3 months.

Read Case Study →
T&K — Cross-Platform E-Commerce

T & K — E-Commerce Platform

Cross-platform e-commerce solution built for scalability — web and mobile, inventory management, secure payments, and real-time analytics.

Read Case Study →

Ready to build something exceptional?

Every project we take on is treated as if it were our own business. If you have an idea, a problem, or a deadline — let’s talk.