www.apollographql.com
Open in
urlscan Pro
2a05:d014:275:cb00:ea62:f40:f6f6:3c4f
Public Scan
Submitted URL: https://meteordevelopmentgroup.orthisbe.com/api/mailings/click/PMRGSZBCHIYTKNRVGY2TSLBCOVZGYIR2EJUHI5DQOM5C6L3XO53S4YLQN5WGY33HOJQXA2DRNQXGG...
Effective URL: https://www.apollographql.com/customers/expediagroup/?q_mailing_7TSLYjZ9rzCfp8hWRrncXsszxd9g8iDo87fHQ=Roav5mrtLaTUsjkthnWkGFDT...
Submission: On April 28 via api from US — Scanned from DE
Effective URL: https://www.apollographql.com/customers/expediagroup/?q_mailing_7TSLYjZ9rzCfp8hWRrncXsszxd9g8iDo87fHQ=Roav5mrtLaTUsjkthnWkGFDT...
Submission: On April 28 via api from US — Scanned from DE
Form analysis
0 forms found in the DOMText Content
Product Pricing Developers Why Apollo Company THE SUPERGRAPH A new, powerful composition engine for your business and teams. Explore the stack REQUEST A DEMO Tools for collaboration, observability, federation, and more. See how we can help GraphOS The supergraph platform. Build, operate and evolve the supergraph. Apollo Client The world’s leading GraphQL client for React, iOS, and Kotlin. Apollo Server A TypeScript GraphQL Server for Express, Koa, Lambda, and more. DEVELOPERS Docs GraphQL Tutorials DevHub Blog Community Events YouTube -------------------------------------------------------------------------------- FEATURED EVENTS GraphQL Summit [Webinar On-Demand] 10 Best Practices for Schema Governance LATEST FROM THE BLOG Join the Apollo GraphOS Community on Discord: A Hub of Support, Collaboration, and Learning by Michael Watson Apollo Changelog: April 24, 2023 by Dylan Anthony Apollo Changelog: April 17, 2023 by Dylan Anthony Apollo Changelog: Apr 10, 2023 by Dylan Anthony Solutions Discover the supergraph for your industry. Professional Services Delivering rapid success on projects with world-class GraphOS and GraphQL expertise. Events Explore tech talks, workshops, product updates & more. Resources Learn how to build and scale your graph. Enterprise Learn how Apollo's solutions and expertise can help you deliver innovation with a unified graph. Customer Stories Learn how Apollo is transforming the way industry leaders build apps. Trust @ Apollo Your hub for up-to-date information on Apollo’s security, reliability, and policies. FEATURED CONTENT GraphOS for Retail Solutions Creating a Demand-Driven API Strategy Whitepapers A composable path to positive user experiences E-books Graph Champions Guide Graph Champions ABOUT US Leadership Careers Open Positions Our Team Partners SUPPORT Contact Sales Get Help Apollo Help Center Terms of Service Privacy Policy Sign in What do you want to learn about GraphQL? Contact Sales Create Account EXPEDIA GROUP TRANSFORMS PRODUCT DEVELOPMENT WITH APOLLO Scaling the benefits of GraphQL with a cross-brand graph KEY STATS 25 travel brands 200+ travel booking sites in 70+ countries >1 in 3 transactions booked on mobile As the world’s travel platform, Expedia Group manages customer experiences across more than 200 booking sites and 25 brands including Brand Expedia, Orbitz, Travelocity, Vrbo, Hotels.com and Egencia. Continuously improving these experiences requires the creativity and careful orchestration of thousands of developers and dozens of backend service teams. And because today’s travelers increasingly use multiple touchpoints when planning, shopping and traveling, ensuring a seamless experience across an ever-growing set of teams, geographies, and capabilities poses a real challenge for Expedia Group. “As you’d expect with a company of our history and scale, we operate multiple technology stacks, most built in-house, some added during acquisitions, and a few dating back to the dot-com era,” said Dan Boerner, Distinguished Product Manager at Expedia Group. “As time progressed, that architectural complexity began to leak into the customer experiences, and teams found themselves duplicating work across platforms and managing ever-evolving service APIs rather than creating next-generation travel solutions for our customers.” Something had to be done. So a team within Brand Expedia set out to combine an ambitious vision with an agile approach to completely transform the way they build and deliver customer experiences. Adopting a common graph while moving away from heavy clients with tight bindings to REST APIs has been transformational. Features ship faster and it takes far less effort to deliver great customer experiences across each of their client platforms. CHALLENGES OF A LARGE AND COMPLEX PLATFORM Over the past decade, Brand Expedia group built a broad set of traditional REST services for its native and web clients. In this model, each client front-end was connected directly to a large number of underlying services. While this approach worked, it slowed client teams down, as each team had to learn about every API, onboard, and then configure specific endpoints. With these APIs constantly evolving, improving, and moving to the cloud, it took more and more time for both client and service teams to make progress together. The rise of native mobile clients added more complexity. Mobile-tuned APIs were created to serve those mobile applications, but that required an extra step each time a new capability was added to the core service. As a result, native apps ended up waiting for access to the latest features and the customer experiences began to diverge between clients. Also, because the service APIs weren’t designed to deliver display-ready content, each client platform had to duplicate core business logic. Subtle differences in that logic, as well as client-specific experiments, all contributed to a diverging customer experience and a duplication of effort. BEFORE ADOPTING A GRAPH: CLIENT AND SERVICE COMPLEXITY As Boerner explained, “Much of the mobile app team’s work had nothing to do with creating experiences for customers because they were constantly figuring out which API to call, onboarding those APIs, and dealing with version and endpoint changes. All of these distractions required additional resources and slowed our feature delivery.” Despite dedicated resources, the underlying problem persisted and continued to affect the customer experience. “The client-service complexity became a real bottleneck,” Boerner added. “Asking a native app team to keep track of tens of service teams so they can escalate production issues became a source of real frustration, and a real distraction for a team focused on creating great customer experiences.” -------------------------------------------------------------------------------- “Much of the mobile app team’s work had nothing to do with creating experiences for customers because they were constantly figuring out what API to call, onboarding those APIs, and dealing with version and endpoint changes.” Dan Boerner Distinguished Product Manager at Expedia Group -------------------------------------------------------------------------------- EXPERIMENTING WITH A BACKEND-FOR-FRONTEND When Brand Expedia group built their first Progressive Web App (PWA) for Expedia, Travelocity, and Orbitz brands, they followed the Backend-for-Frontend (BFF) pattern. The general approach held promise: let the BFF talk directly to the services and present a clean, non-service-specific API to the front-end. With this model, clients no longer had to include the business and orchestration logic and could enjoy an API built just for them. It worked well initially, but the teams quickly learned that BFFs just aren’t designed to scale. Since BFFs are tuned for a single client— in this case, the web—to make it work everywhere, Expedia Group would have had to write a BFF for each and every client platform, with duplicated logic and custom code in each. EXPERIMENTING WITH BFF FOR A PROGRESSIVE WEB APP As Boerner explained, “when our native app team tried to replace the legacy mobile API with their own BFF, they found it difficult to keep up-to-date with all the test-and-learn experimentation going on in the web BFF. Ultimately, we decided it would be too time consuming to create a custom front-end service for each client and domain.” That’s when team began to explore a graph approach with GraphQL and Apollo. THE MOVE TO ONE GRAPH With their BFF experience in hand, and the dual goals of moving the rest of the website pages to the new PWA platform and aligning capabilities and experiences between all client platforms, the team began to explore the use of GraphQL to connect the entire organization’s app data and services into one central graph. Their goal: a single graph, understood and discoverable by all teams, built to empower a new set of cohesive customer experiences. With a single entry point for clients to connect to, client teams were freed from directly connecting to multiple services or managing communications across multiple, extended teams. Meanwhile, service owners could easily expose their data via a schema that allowed clients to retrieve exactly the portion of data needed with a simple query. AFTER ADOPTING A GRAPH: A FEDERATED SERVICES ARCHITECTURE TO SCALE Expedia Group turned this effort into a formal initiative, which now serves as the foundation of their new and modern application development stack, and supports their strategy to create seamless customer experiences across all their client platforms. “When your client code doesn’t need to know which underlying service provides the data, all kinds of good things start to happen, for both the client and service teams,” said Boerner. “Client teams are freed from complexity and service teams have a single contract to maintain, which frees them up to evolve their back-ends faster and with less risk.” Though given a broad charter, the team knew from the start that they needed an iterative approach to building and operating this single graph. It needed to have all the benefits of a single graph, but without requiring that a single central team manage such a large schema. So, aligned with the “one graph, federated implementation” architecture described at principledgraphql.com, Brand Expedia group set out to distribute ownership of the graph. -------------------------------------------------------------------------------- “Apollo Federation will allow us to implement our existing schema linking in a safer, declarative manner, while opening up a whole new level of broader federation opportunities across the wider enterprise” Dan Boerner -------------------------------------------------------------------------------- The first effort by the team was to develop a schema stitcher leveraging Apollo Server called the “Loom,” which worked with their open-source graphql-kotlin to stitch together GraphQL services for each domain schema into a single graph. The Loom also allowed simple schema linking between common schema objects like Geography. While this initial stitching implementation worked, the schema linking required custom code for each link. When Apollo announced their Apollo Federation, a new architecture for composing multiple GraphQL services into a single graph, the team was immediately intrigued. “Apollo Federation will allow us to implement our existing schema linking in a safer, declarative manner, while opening up a whole new level of broader federation opportunities across the wider enterprise,” explained Boerner. MIGRATION TO APOLLO GRAPH MANAGEMENT At scale, the team knew that expanding the graph across and within teams would require powerful management capabilities to improve the development experience and protect the graph. “As our initial GraphQL rollouts began to show promise, the power of the technical approach was clear. Equally clear was the need to have all the powerful monitoring, management, and operational capabilities built into our platform to support tens of teams and hundreds of developers,” said Boerner. “When we learned about Apollo’s Data Graph Platform and the Apollo Graph Manager, it became a classic build-vs.-buy decision for us. Apollo gave us the tools we didn’t have, while allowing us to integrate with our existing operational infrastructure.” For Expedia Group, leveraging tools and tech from Apollo freed up the team for other priorities. As Boerner put it, “If our small platform team had to build all the tech we use from Apollo Platform, we’d have much less time to help onboard new teams, evangelize our design principles, or ultimately solve our customer problems.” -------------------------------------------------------------------------------- “Our new PWA clients have a tiny fraction of the business logic of our older clients because we’ve moved it behind the graph where it’s shared by all clients…” Dan Boerner -------------------------------------------------------------------------------- Apollo provided Expedia Group with a complete graph management solution, giving them a means to monitor, detect, and prevent schema breaks, as well as operationalize the graph—all at scale. It also makes a unified graph possible by sharing management and portable code, queries, and fixes across teams. Since adopting Apollo, code complexity has decreased dramatically. “Our new PWA clients have a tiny fraction of the business logic of our older clients because we’ve moved it behind the graph where it’s shared by all clients,” said Boerner. “This also means that fixes made in the shared layer are picked up by all clients, so that’s a big win in terms of reducing technical debt and fulfilling our mission to create a seamless customer experience, regardless of the client platform.” DEVELOPER EXPERIENCE AND PRODUCTIVITY IMPROVES Almost immediately after adopting the Apollo platform, Expedia Group saw an improvement in the speed and efficiency of the developers working with the single graph and GraphQL. Ben Munge, lead developer on Expedia Group’s Native App iOS Team, saw how Apollo’s platform enabled developers to thread the graph through tools they were already using. “The power of the Apollo tooling to reduce developer effort and ensure that the service code is always a true reflection of the schema made it a great option for us,” he said. “Using generated code has greatly reduced the number of bugs and minimized the development and testing effort compared to implementing this integration manually. We develop our queries in Xcode using the Apollo GraphQL plugin. We also leverage GraphQL Playgrounds to explore the schema and develop queries. Once a query is set, we use the Apollo iOS tools to update our schema and regenerate the API.” Munge also uses the platform to track down issues and monitor the health of services during debugging. “There were a lot of pluses to the Apollo platform,” he added. “Speed was one of them. By partnering with Apollo, we can greatly reduce the time to create new experiences and to resolve time-to-root-cause and time-to-fix live issues.” KEEPING THE GRAPH HEALTHY AND EFFICIENT Expedia Group recognized the graph as an ideal central location to collaborate across product teams, so they took the vital step of creating a new group to create and manage their growing graph community. This became a key part of their agile API strategy. Using Apollo’s graph platform, developers across the organization can monitor the health of the graph and discover how back-end services are used. “We can take the graph metrics from Apollo and plug them into our operational fabric, Grafana, Splunk, etc.” said Boerner. “But those tools are designed for general purpose, and we find that Apollo’s dashboard gives a better 360-degree GraphQL-native view of clients, operations, schema changes, and failures so that our developers get a much clearer view of how our graph is performing. We also see reductions in the time it takes to determine root cause during a service disruption, as Apollo Graph Manager allows us to quickly see exactly which clients and queries are affected.” It also became important for managing changes to the underlying services and schemas, so that any individual change from a team wouldn’t break existing queries—or the customer experience. -------------------------------------------------------------------------------- “Schema validation at PR commit is a game changer. We’ve already detected and prevented a number of schema changes that would have led to weeklong service outages for our native app customers.” Dan Boerner -------------------------------------------------------------------------------- “Since customers run a variety of app versions, we have to ensure that even older clients are still compatible with our graph,” said Boerner. “To protect these clients, we use Apollo’s Github integration coupled with Schema Validation to ensure backward compatibility at all times by validating all schema changes against the client queries from the previous week of client requests.” In the past, teams would make an API change on behalf of web clients and inadvertently break native apps. As Boerner explained, “Schema validation at PR commit is a game changer. We’ve already detected and prevented a number of schema changes that would have led to weeklong service outages for our native app customers. We modeled loss reductions from schema validation and were surprised at how quickly the technology would pay for itself.” It’s these types of central operations that ensure the data graph is a reliable resource even as it evolves. WHAT’S NEXT “GraphQL is becoming the standard front-end API for all our customer-facing applications, and teams are working on external partner APIs that leverage GraphQL as we strive to leverage technologies that create consistency and simplicity.” Today, Expedia Group is expanding the use of the graph across more teams, which is a great opportunity for everyone in the organization to think in terms of a truly unified customer experience. “As we work to leverage and share more capabilities across Expedia Group, GraphQL and Federation are strategically important tools.” said Boerner. GraphQL is also enabling opportunities to align across different product types. “Across all lines of business, we are identifying the common capabilities that allow a user to execute a search, browse and filter results, view details, and make a purchase,” said Ben Munge, Senior iOS Software Engineer. “The service architecture needs to be designed with this unified experience in mind. Why should the response structure differ based the product we’re selling? Imagine if Amazon had separate services for household goods, electronics, and books.” -------------------------------------------------------------------------------- “We’re excited about the opportunities to connect our data graph with our Unified Design System” Tyler Fleck Director of User Experience at Expedia Group -------------------------------------------------------------------------------- Looking ahead, the core team is exploring advanced capabilities like server-driven UI, powered by a graph that dynamically adjusts the user experience across all clients based on machine learning models. “We’re excited about the opportunities to connect our graph with our Unified Design System to power a set of more scalable user experiences that allow server-side experimentation,” said Tyler Fleck, Director of User Experience. “Trying out new ideas across all our clients without the need to make any client-specific changes speeds up the design and learning process, and ultimately leads to better customer experiences and outcomes.” What started as a bottom-up project with a small team focused on building a proof-of-concept multi-tenant graph has grown both intentionally and organically as teams throughout the company demonstrated the value of GraphQL and the Apollo Platform. Expedia Group is now focused on building on the groundswell of adoption across mobile web, iOS, and Android; onboarding service teams to publish their capabilities to the graph; and demonstrating the value across the company and across the customer experience. “GraphQL is helping us bring the world within reach for millions of travelers,” said Boerner. We believe we are just scratching the surface of what this transformation will unlock for our customers.” A travel platform to orchestrate the movement of people and the delivery of travel experiences on both a local and global basis. CHALLENGE Legacy REST infrastructure isn’t suited for modern apps, leading to slow development and inconsistencies across clients. SOLUTION Apollo Graph Platform to modernize the application architecture with GraphQL and a single cross-brand graph. RESULTS * Faster development of mobile and web products. * Faster resolution of time-to-root-cause and time-to-fix live issues. * Avoid weeklong outages caused by API changes impacting specific clients. * Less time to maintain consistency between platforms. Questions? Contact Us SUGGESTED READING Customer Story The supergraph helps Booking.com boost developer productivity and ship 40% faster Founded in 1996 in Amsterdam, Booking.com grew from a small Dutch start-up to one of the... Read more Event How Expedia Increased Developer Velocity by 3x Watch on-demand to learn how Expedia tackled their product velocity challenge with a... Watch now E-books Discover your path to a supergraph Learn how experienced GraphQL champions have migrated their platforms from REST, monoliths, and... Read more © 2023 Apollo Graph Inc. COMPANY * About Us * Careers * Open Positions * Team * Leadership * Interns * Partners COMPANY * About Us * Careers * Open Positions * Team * Leadership * Interns * Partners PRODUCT * GraphOS * Apollo Client * Apollo Server PRODUCT * GraphOS * Apollo Client * Apollo Server COMMUNITY * GraphQL Tutorials * GraphQL Summit * Apollo Community * Blog * DevHub * Graph Champions * Contribute COMMUNITY * GraphQL Tutorials * GraphQL Summit * Apollo Community * Blog * DevHub * Graph Champions * Contribute WHY APOLLO? * Customer Stories * Content Library * Apollo for Enterprise * Events at Apollo * Trust at Apollo WHY APOLLO? * Customer Stories * Content Library * Apollo for Enterprise * Events at Apollo * Trust at Apollo HELP * Contact an Expert * Get Support * Apollo Help Center * Website Terms of Service * Product Terms of Service * Privacy Policy HELP * Contact an Expert * Get Support * Apollo Help Center * Website Terms of Service * Product Terms of Service * Privacy Policy By clicking “Accept All Cookies”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. Cookies Settings Accept All Cookies PRIVACY PREFERENCE CENTER When you visit any website, it may store or retrieve information on your browser, mostly in the form of cookies. This information might be about you, your preferences or your device and is mostly used to make the site work as you expect it to. The information does not usually directly identify you, but it can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies. Click on the different category headings to find out more and change our default settings. However, blocking some types of cookies may impact your experience of the site and the services we are able to offer. More information Allow All MANAGE CONSENT PREFERENCES TARGETING COOKIES Targeting Cookies These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites. They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising. STRICTLY NECESSARY COOKIES Always Active These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but some parts of the site will not then work. These cookies do not store any personally identifiable information. PERFORMANCE COOKIES Performance Cookies These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us to know which pages are the most and least popular and see how visitors move around the site. All information these cookies collect is aggregated and therefore anonymous. If you do not allow these cookies we will not know when you have visited our site, and will not be able to monitor its performance. FUNCTIONAL COOKIES Functional Cookies These cookies enable the website to provide enhanced functionality and personalisation. They may be set by us or by third party providers whose services we have added to our pages. If you do not allow these cookies then some or all of these services may not function properly. Back Button BACK Search Icon Filter Icon Clear checkbox label label Apply Cancel Consent Leg.Interest checkbox label label checkbox label label checkbox label label Reject All Confirm My Choices