Health & Wellness Mobile App
MyAyur
Overview
MyAyur is a health and wellness mobile app published on Google Play. As part of a 3-engineer team, I contributed to the overall microservices architecture and owned two services end to end: Notifications and Background Tasks.
The problem
A wellness app that pushes daily recommendations has to avoid becoming noise: notifications need to reach users without spamming them or getting throttled by third-party providers, and personalized content like meal plans has to be generated on a schedule, per region, without repeating the same recommendation twice. Solving this with direct service-to-service calls would tightly couple notification delivery, scheduling, and recommendation logic in ways that don't scale independently.
Architecture & approach
The backend is an event-driven system running on AWS ECS Fargate across multiple availability zones, with services communicating through an SNS to SQS fan-out layer instead of direct service-to-service calls, so each consumer can scale and fail independently of the others.
The Notification microservice is a consumer-based system that batches related notifications intelligently, checks whether a user is already active in the app before sending, and rate-limits calls to third-party providers (WhatsApp, email, push) before dispatch.
The Background Tasks microservice runs EventBridge-scheduled, region-aware jobs that generate personalized recommendations, including a calorie-budget meal-planning algorithm.
Technical decisions
SNS to SQS fan-out over direct calls
Services publish events to SNS topics that fan out to per-consumer SQS queues rather than calling each other directly. This decouples producers from consumers, lets each microservice scale and retry independently, and keeps a slow or failing consumer from cascading back into the rest of the system.
Presence-aware, rate-limited notifications
The Notification service batches related notifications instead of firing one per event, and checks whether a user is already active in-app before sending a push, so active users aren't interrupted with alerts about things they're already looking at. Calls to WhatsApp, email, and push providers are rate-limited on the way out to stay within third-party API limits and avoid provider throttling or bans.
TDEE-based meal planning with exclusion logic
The meal-planning algorithm computes a calorie budget from TDEE (Total Daily Energy Expenditure), splits macros across breakfast, lunch, and dinner slots, and assigns recipes per slot with exclusion logic that tracks recent recommendations so the same meal doesn't repeat too soon.
Outcome
- Shipped and published on Google Play, running in production as a consumer-facing health and wellness app.
- The SNS-to-SQS event-driven architecture let the Notification and Background Tasks services scale and deploy independently of the rest of the platform.
- Notification batching and presence checks cut redundant alerts, and third-party rate-limiting kept the app within WhatsApp, email, and push provider limits.