January 20, 2020

398 words 2 mins read

Building next-gen edge architecture at Expedia

Building next-gen edge architecture at Expedia

As Expedia refactors its backend services into a finer-grained microservice architecture, frontend applications have begun to be split into smaller applications serving a small number of pages or content on the website. Rick Fast details how Expedia is creating an extremely configurable, self-service edge architecture for routing between frontend applications and managing bot traffic.

Talk Title Building next-gen edge architecture at Expedia
Speakers Rick Fast (Expedia)
Conference O’Reilly Velocity Conference
Conf Tag Build Resilient Distributed Systems
Location London, United Kingdom
Date October 18-20, 2017
URL Talk Page
Slides Talk Slides
Video

As production system backends become more fine-grained through decomposition into microservices, micro frontends have become more popular to introduce independent deployability to the UI layer. Routing between an ever-growing and -changing number of frontend applications becomes a significant challenge. Hordes of good and bad bots that regularly pummel your website represent another challenge. Rick Fast details how Expedia leverages an in-house open source reverse proxy called Styx to create a highly configurable routing and bot detection system. (This system proxies traffic across all of the brands hosted on the Expedia platform.) Rick offers an overview of Styx—built on Netty and RxJava with a plugin architecture that makes it extremely extensible—which leverages nonblocking I/O alongside the concurrency of the JVM to provide high throughput and scalability. Rick also discusses the set of plugins Expedia built on top of Styx to allow for instant remote configuration (using Consul) of a fleet of proxies across the globe and the flexible routing engine built on top of Styx that allows for very complex routing rules between applications. These routing rules need to be able to act on any dimension of a web request, such as the user’s authentication state, cookies, or even the result of an A/B test. Rick shares Expedia’s approaches to making complex rules configurable in real time using self-service tools and for isolating each micro frontend from other applications at the front door, in order to avoid allowing a single misbehaving application to impact the overall performance of the site. Rick concludes by explaining how Expedia leverages the routing rules engine and proxy architecture to identify and treat bot traffic in near real time, how the company identifies and applies treatments to bot traffic from within its proxies, and how it leverages streaming request data with Kinesis to identify bot sessions and define new patterns of detecting bots.

comments powered by Disqus