Skip to content
Solvixe.
00EDTECH
eSaral logo

eSaral

A serverless, decoupled content-processing pipeline on AWS that ingests JEE questions, enriches them with AI, and persists the results, keeping eSaral's question bank growing without a manual bottleneck.

eSaral is one of India's most trusted online and offline coaching platforms for JEE and Classes 8 to 10.

The challenge

eSaral pairs a five-layered mentorship model with a large, pattern-based question bank and AI-powered test analysis, and needed a reliable, automated pipeline to keep enriching that bank at scale: ingesting large volumes of JEE questions and augmenting each one with explanations, embeddings, and difficulty scoring. That meant ingesting questions reliably, decoupling enrichment steps to avoid bottlenecks, and blending foundation models with custom ML, all while keeping access least-privilege, staying observable, and shipping through a repeatable CI/CD path. It also had to isolate failures with dead-letter queues, manage Bedrock and SageMaker usage within quota, and support a defined disaster-recovery plan with verifiable end-to-end tests.

What we did

  • Built a modular, event-driven pipeline using DynamoDB for question ingestion and DynamoDB Streams to trigger processing in real time
  • Used AWS Lambda to validate new questions and route them into subject-wise SQS queues (Physics, Chemistry, Maths), each with a dead-letter queue for failure isolation
  • Ran ECS Fargate workers, built from images in ECR, to consume queue messages and orchestrate AI enrichment through Amazon Bedrock (explanations, summaries, embeddings) and Amazon SageMaker (custom inference such as difficulty scoring)
  • Wrote enriched metadata back to DynamoDB and persisted datasets in a versioned S3 data lake with distinct raw, processed, and enriched layers for auditability and analytics
  • Automated builds and releases with CodeCommit, CodeBuild, and CodePipeline for Lambda packaging, container builds, and ECS deployments
  • Set up CloudWatch monitoring across Streams iterator age, SQS backlog, ECS CPU and memory, and Bedrock/SageMaker latency, secured throughout with least-privilege IAM
  • Enabled fast recovery with Terraform-driven disaster recovery, backed by DynamoDB point-in-time recovery, S3 versioning, and reusable model artifacts for quick SageMaker redeployment

Architecture and stack

DynamoDB + StreamsLambdaSQS + DLQsECS Fargate + ECRBedrockSageMakerS3AthenaCloudWatchIAMCI/CDTerraform

Outcomes

  • Subject-wise SQS queues with dead-letter queues absorb spikes and isolate failures without blocking upstream ingestion
  • Composable AI enrichment: Bedrock handles generation and embeddings while SageMaker serves custom inference like difficulty scoring, producing richer metadata per question
  • A single CI/CD pipeline automates builds, tests, and deploys for both Lambda and Fargate, cutting manual steps and release friction
  • Real-time visibility into stream age, queue depth, ECS utilization, and model latency through CloudWatch, backed by documented runbooks
Download PDF

Have a similar workload? Let us scope it.

Talk to us