Posts

Showing posts from July, 2026

Designing CineMatch: My Microservices Journey

Image
Introduction I wanted to build something more ambitious than a typical CRUD side project: a movie discovery and recommendation platform that actually behaves like the streaming apps I use every day. Instant search, a personalized home feed, and recommendations that get smarter the more you interact with it. I'm calling it CineMatch. That goal shaped almost every architectural decision that followed. A single monolith could technically do all of this, but the moment I wrote down the actual requirements (fast full-text search, personalized ML-driven recommendations, high-frequency behavioral event tracking, and a background job syncing against an external movie database), it became clear these are fundamentally different workloads. They have different scaling needs, different data models, and different failure modes. Bundling them into one service would mean every part of the system inherits the fragility and scaling constraints of the busiest part. So I split CineMatch into microser...