2025
Blogify — Distributed Blogging Platform
A 3-service distributed backend system with async communication, Redis caching, and RabbitMQ-based messaging, achieving 99.9% message delivery reliability.
Technology Stack
Node.jsTypeScriptMongoDBRedisRabbitMQDocker
Overview
Blogify was designed to explore real-world distributed system patterns using microservices and asynchronous messaging. The system is split into User, Author, and Blog services communicating via RabbitMQ, with Redis used for caching and pub/sub invalidation.
System Architecture
Designed as a distributed system to handle high concurrency:
- •Services: Decomposed into discrete User, Author, and Blog microservices to isolate fault domains.
- •Message Broker: RabbitMQ handles asynchronous communication (e.g., "Post Created" events) to decouple service dependencies.
- •Caching Layer: Redis implements look-aside caching and Pub/Sub output caching to offload the primary database.
- •Persistence: MongoDB sharded clusters provide horizontal scalability for content-heavy workloads.
Key Challenges
- •Designing message-driven workflows without tight coupling.
- •Maintaining cache consistency across services.
- •Handling retries, failures, and duplicate events.
- •Ensuring reliable delivery under load.
Key Learnings
- •Redis TTL-based caching reduced read latency from ~120ms to under 6ms.
- •Pub/Sub invalidation enabled near-instant cross-service cache coherence.
- •Message acknowledgements were critical for reliability.
- •Docker simplified local orchestration and testing.
Uniqueness
- •True async service communication (not fake microservices).
- •Redis + RabbitMQ used for distinct responsibilities.
- •Failure-aware message handling.
Impact
- •Achieved 99.9% message delivery reliability.
- •Reduced read latency by ~95%.