Why microservices for a blogging platform?
Honestly, it would have been simpler as a monolith. But I built it this way intentionally — to prove I could architect distributed systems that actually work in production.
The recommendation engine scaling independently from the content service has been the biggest win. See My Development Philosophy for the broader thinking.
The Redis caching layer
Blog content is read-heavy. A single popular post might get thousands of reads but only one write. Redis brings hot content response times from ~200ms (database) to ~5ms (cache). This is the same principle from Lessons from Infrastructure — monitor first, optimize second.
Kubernetes over serverless
The recommendation engine needs persistent connections to the database and sustained compute for model inference. Serverless cold starts would have killed the user experience.
CI/CD with GitHub Actions
Every merge to main is in production within minutes. Lint, test, build, deploy to K8s. No manual SSH, no downtime. The Tools I Can't Live Without page has more on the specific tooling.