How Travel Graph Built a Universal Travel API Connecting Free and Paid Services into One Platform
Travel Graph needed a backend that unified dozens of external travel APIs - both free and paid - into one consistent interface, plus meta-search platforms for holiday apartments and villa rentals. easy.bi built the entire service-oriented backend and search frontend.
The Challenge: Dozens of APIs, Zero Consistency
The travel industry runs on APIs - thousands of them. Every hotel chain, apartment listing service, villa broker, flight aggregator, and local activity provider exposes data differently. Different formats. Different authentication schemes. Different rate limits. Different error handling. Building a travel platform means wrestling with this chaos before writing a single line of user-facing code.
Travel Graph wanted to build two products simultaneously: a meta-search platform for holiday apartments and a specialized villa rental brokering service. Both needed the same underlying data - property listings, availability, pricing, images, reviews - from dozens of external sources. But each source had its own API, its own data model, and its own quirks.
Without a unified backend, every new data source would require custom integration code in every product. Add a new apartment listing API? Rewrite the integration in both the meta-search platform and the villa broker. Change a pricing format? Update it everywhere. The maintenance burden would scale linearly with every external service added.
Travel Graph needed a universal API backend that could absorb any external service - free or paid - and present a consistent interface to any product built on top of it. One integration point per external service. One data model. Multiple products.
“Every agency we talked to wanted to build custom integrations for each API. easy.bi said: build the integration once, use it everywhere. That architectural decision saved us months of work.”
Why Travel Graph Chose easy.bi
Travel Graph had worked with agencies that built custom integrations for individual APIs. The result was always the same: a tangle of one-off connectors that broke whenever an external provider changed their format. easy.bi proposed a fundamentally different approach - a Service Oriented Architecture using JSON-RPC 2.0 on Symfony2 components, where each external service integration is a self-contained microservice and all products consume data through one unified API.
The team's experience with ElasticSearch and MongoDB was equally decisive. Travel search demands sub-second response times across millions of listings with complex filtering - location, dates, price range, amenities, ratings. easy.bi had built exactly this kind of search infrastructure before, and could deliver a working meta-search prototype within weeks, not months.
“We launched two products on the same backend without duplicating a single API integration. When we add a new data source, both products benefit automatically.”
The Approach: One Backend, Multiple Products
The architecture was designed around a single principle: integrate once, use everywhere. Every external travel service is connected to the universal backend through a standardized adapter. The backend normalizes data into a common model and exposes it through a consistent JSON-RPC 2.0 API that any product can consume.
Universal API backend. The backend, built on Symfony2 with Doctrine2, connects to both free and paid external services. Each integration is isolated - a change to one provider's API requires updating one adapter, not rewriting product code. MySQL stores structured data; MongoDB handles the semi-structured property listings, images, and reviews that vary wildly between sources. RabbitMQ manages asynchronous data synchronization, ensuring the platform stays current without hammering external APIs.
Holiday apartment meta-search. The first product built on the backend is a meta-search engine for holiday apartments. ElasticSearch indexes normalized listings from all connected sources, delivering search results ranked by relevance, price, and availability. The Angular 2 frontend provides faceted search - guests filter by location, dates, price range, property type, and amenities - with results appearing in under one second.
Villa rental brokering platform. The second product uses the same backend but serves a different market: premium villa rentals with a brokered booking process. Instead of instant booking, this platform connects renters with villa managers who handle custom arrangements. Same data pipeline. Different user experience. Zero duplicate integration work.
Scalable microservice architecture. The SOA approach means Travel Graph can add new products - a flight search engine, a local activities marketplace, a B2B data feed - without touching the existing integration layer. Each new product just connects to the universal API and builds its own frontend and business logic on top.
“The search is what users notice. Sub-second results across hundreds of thousands of listings. But it's the architecture underneath that makes it sustainable.”
The Results: One Integration Layer, Unlimited Product Potential
Travel Graph launched both the meta-search platform and the villa brokering service on the same backend - with zero duplicated integration code. Adding a new external data source now takes days instead of weeks, because the adapter pattern means only one connector needs to be built regardless of how many products consume the data.
The meta-search platform delivers sub-second results across hundreds of thousands of listings. Users find relevant properties fast, filter precisely, and compare options from multiple sources on one page. The villa brokering platform operates with its own UX and business logic but shares the same normalized data - proving that the 'integrate once, use everywhere' architecture works in practice, not just in theory.
Travel Graph's competitive advantage is now architectural. While competitors build separate integrations for every product, Travel Graph adds external services once and immediately benefits across their entire product portfolio.
“We can now pitch new products to investors knowing the backend already exists. The universal API turned integration work from a cost center into a competitive advantage.”
Key Takeaways
- Integrate once, use everywhere. A universal API backend with standardized adapters means every new external service benefits all products simultaneously. The alternative - custom integrations per product - doesn't scale.
- Use the right database for each data type. MySQL for structured relational data. MongoDB for semi-structured listings that vary across sources. Choosing the right storage for each use case avoids the performance and flexibility compromises of forcing everything into one system.
- SOA enables product velocity. When the integration layer is decoupled from product logic, Travel Graph can launch new products without touching existing infrastructure. Architecture as competitive advantage.
- Search performance is table stakes. In travel, sub-second search results aren't a nice-to-have - they're the minimum bar. ElasticSearch indexing across normalized data delivers the speed users expect.
Ready to achieve similar results?
Speak directly with our experts. Book a 20-minute Expert Call.
Start with a Strategy CallProject Snapshot
More success stories
Multi-brand e-commerce platform with SSO for outdoor brands
Order processing middleware for multi-store Shopify operations