# Design a travel itinerary app like TripIt: system design interview question

> Combine travel records across providers without false merges, stale changes, or errors in local dates and times.

Source: https://sysround.com/questions/design-travel-itinerary-app-like-tripit
Updated: 2026-11-05


Difficulty: hard. Levels: Senior, Staff+.

## How the interviewer opens it

"Design a service that collects travel confirmations and organizes them into itineraries. Travelers should see a clear plan when providers send duplicate confirmations or change their bookings."

## What to clarify first

- Input sources
- Scale and traffic mix
- Message size and retention
- Booking identity
- Changes and user edits
- Dates and time zones
- Trip membership
- Latency
- Consistency, durability, and access
- Exclusions

## Scope of a strong answer

Core requirements:

- Import flight, hotel, and car rental confirmations.
- Reconcile duplicate confirmations, changes, and cancellations.
- Group bookings into trips and show the correct local dates and times.
- Let users correct booking details and move bookings between trips.

Usually out of scope:

- Ticket purchases, payments, and refunds.
- Live flight status.
- Mailbox sync and attachment extraction.
- Travel recommendations.

## What interviewers probe

### Booking identity

Different references can describe one booking. Similar dates and routes can also describe separate purchases.

### Changes from providers

Providers send late or conflicting facts without a shared revision sequence. User corrections create another source of authority.

### Dates and local times

Travel spans local calendars, ambiguous clock times, and dates without times. One UTC timestamp cannot represent every source fact.

### Trip membership

Dates and locations suggest a trip but do not prove its boundaries. Later imports must respect user choices.

## Common mistakes

- Treats repeated message detection as the complete solution to booking identity.
- Uses the latest receipt time as the latest booking state.
- Uses a provider reference as a permanent global identifier.
- Stores only UTC or converts date-only values into midnight timestamps.
- Lets provider imports erase user corrections or trip choices.
- Adds distributed infrastructure before defining identity, source authority, and recovery rules.

## The bar by level

- **Senior:** Separates delivery identity from booking identity. Handles conflicting updates, concurrent workers, user corrections, and ambiguous times. Explains transactions and recovery.
- **Staff+:** Defines policies for uncertain identity and source authority. Supports reversible merges and controlled replay. Explains how policy changes affect existing trips and recovery.

Practice this question with an AI interviewer: https://sysround.com/practice/new?problem=travel-itinerary-management


---
SysRound (https://sysround.com) is an AI practice tool for system design interviews. It has a voice or typed AI interviewer and a shared whiteboard. At the end, you get feedback on each skill and a model answer. The AI feedback can be wrong.
