Engineering case study
JourneyMind AI
JourneyMind AI is a travel-disruption decision system. AI prepares context; a deterministic decision engine evaluates options against constraints and returns a justified recommendation. Built at the Amadeus + Contentstack AI Hackathon.
Background
In travel, disruption decisions carry cost and contractual weight. Pure AI answers are not enough because they cannot be audited. I wanted to show that AI orchestration can be combined with a deterministic, explainable decision core — even under hackathon time constraints.
Problem
When travel is disrupted, operators must reconcile passenger context, fare rules, and rebooking options quickly. Manual handling is slow and inconsistent; a purely generative AI approach is unaccountable and cannot be audited.
Goals
- Use AI for context and option preparation, not the final decision
- A deterministic, rule-based decision engine with rationale attached
- REST API between React frontend and FastAPI backend for easy integration
- End-to-end tests of the primary operator flow with Playwright
Architecture
Current implementation — based on what is built today.
Technology stack
React · TypeScript · Vite · Tailwind CSS · FastAPI · Python · REST APIs · Playwright
Engineering challenges
- Separating probabilistic AI orchestration from deterministic decision-making
- Making rationale a true output of the decision engine, not generated afterwards
- Modelling constraints so they remain machine-evaluable and human-readable
- Hackathon scope: complete architecture, but deliberately not all production concerns implemented
Trade-offs
- A deterministic core provides auditability but less flexibility than an end-to-end model — the right trade for a regulated domain
- REST instead of GraphQL/gRPC: a small, inspectable surface with no tooling overhead; transport is not the bottleneck here
- Explainability requires more data plumbing, but it is the main value of the system
- Hackathon scope: architecture and core flows are complete; auth, load testing, and live data integration are designed for but not implemented
Lessons learned
- Determinism alone does not guarantee explainability — rationale must originate in the decision process
- Keeping AI orchestration outside the final decision step preserves auditability
- End-to-end tests of the operator flow reveal more than isolated unit tests
- Explicit constraints are more valuable than implicit model flexibility in regulated contexts
Current status
Hackathon build with complete architecture and core flows — no live data integration or production hardening.
Future improvements
- Production hardening: auth, rate limiting, observability, resilience
- Live data integration for disruptions, fares, and rebookings
- Configurable constraints without code changes
- Audit log for recommendations and manual overrides
Estimated milestones
- Q3 2026 — Auth and basic observability
- Q4 2026 — Configurable constraints and audit log
- Q1 2027 — Live data integration and load testing