← Fora Travel Interview Insights

Fora Travel·Software Engineer·Onsite - System Design / Architecture·Senior

Senior
Jul 2026

Summary

System design round at Fora Travel for a software engineering role. The question was a full-scale emergency notification platform design, which is one of those problems that looks manageable until you start pulling on the threads.

Questions Asked (1)

Q1

Design a disaster and emergency notification system for a large organization (city government, university, or company) that delivers urgent alerts across multiple channels like SMS, push, email, voice, and web banners, with targeting by geography, group, subscription, or incident type.

System DesignData ModelingTechnical Trade-offs
Author's notes

This one sprawled fast.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then design a modular architecture with a fan-out delivery pipeline that decouples alert ingestion from channel-specific delivery. Emphasize targeting, reliability, and trade-offs like consistency vs. latency, and discuss failure handling and monitoring.

Pro tip: Prioritize life-safety messages with a dedicated high-priority queue and idempotent delivery to avoid duplicate alerts, while using rate limiting and backpressure to protect downstream systems during mass notifications.

1. Clarify Requirements and Scale

Ask about user base size, expected alert volume, latency requirements, and compliance needs (e.g., GDPR, CAN-SPAM). Define functional and non-functional requirements.

2. High-Level Architecture

Propose a microservices-based system with an alert ingestion API, a targeting service, a message queue (e.g., Kafka), and channel-specific delivery workers. Include a database for subscriptions and targeting rules.

3. Targeting and Personalization

Design a targeting engine that evaluates rules based on geography, group membership, subscription preferences, and incident type. Use a fast lookup store (e.g., Redis) for real-time segmentation.

4. Delivery Pipeline and Reliability

Implement a fan-out mechanism with retries, dead-letter queues, and idempotency. Ensure at-least-once delivery and handle channel-specific rate limits and failures.

5. Monitoring, Analytics, and Trade-offs

Discuss monitoring (delivery rates, latency, errors), analytics for audit, and trade-offs like consistency vs. availability, cost vs. reliability, and push vs. pull models.

Key Points to Mention

  • Use of message queues (e.g., Kafka, RabbitMQ) for decoupling and scalability.
  • Targeting service with rule engine and caching for low-latency evaluation.
  • Channel adapters for SMS, push, email, voice, web banners with provider abstraction.
  • Idempotency and deduplication to prevent duplicate alerts.
  • Priority queues for life-safety vs. non-critical alerts.
  • Monitoring, alerting, and audit logs for compliance and debugging.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.