What it is
ProStriver is a production-deployed backend for students and self-learners. Track what you study, get spaced-repetition reminders, keep streaks through lock-in challenges, and generate structured, AI-powered study plans you work through subtopic by subtopic. It runs live for real users and is built as an end-to-end systems project: stateless, async-decoupled, polyglot in storage, and hardened by real production incidents.
How the AI study plan works
You give it a topic, your available time, your level, and your goal. It returns a structured plan broken into subtopics with resources, key concepts, and tips. Generation is slow, so it never blocks the API. The request is rate limited, queued to Kafka, and returned instantly with a job ID. A background worker generates the plan and stores it, and the client polls until it is ready. You then work through it subtopic by subtopic, with an exact, server-owned progress counter that stays correct even under concurrent clicks.
Engineering highlights
Async LLM pipeline over Kafka with at-least-once delivery and idempotent consumers
Polyglot persistence by data shape. PostgreSQL, MongoDB, and Redis
One fat JAR, two roles (API and worker) via Spring profiles
Distributed rate limiting with Bucket4j backed by Redis
JWT access plus rotating refresh tokens, OTP, RBAC, and object-level authorization
Decisions I can defend
Modular monolith over microservices at this scale
Polling over SSE for job results, with a clear upgrade path
The whole job lifecycle in one MongoDB document for atomic completion
Kafka is honestly learning-driven. A database queue would also work here
Production lessons
Real incidents debugged on the live system: an out-of-memory on a 1 GB instance (fixed with swap, heap caps, and profile-gated subsystems), Redis idle-connection drops, a batch job silently rolling back its whole transaction (fixed with per-item REQUIRES_NEW in a separate bean), and a CI/CD pipeline that was silently no-opping.
Tech
Java 21, Spring Boot, Spring Security, PostgreSQL, MongoDB, Redis, Apache Kafka, Spring AI with the Gemini API, Bucket4j, Docker, GitHub Actions, AWS, and DigitalOcean.
What's next?
Google and GitHub OAuth 2.0, a pro tier with a virtual-credit ledger and Stripe, dead-letter processing, and observability with correlation IDs.
Built with