As production system backends become more fine grained through decomposition into microservices, microfrontends 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 microfrontend 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.
Rick Fast is a distinguished software engineer at Expedia. Previously, Rick was an engineer at CDK Global/Cobalt in Portland, an industry leader in automotive retail software, and served as lead engineer at Nokia HERE (formerly Navteq), a provider of digital map data.
©2017, O’Reilly UK Ltd • (800) 889-8969 or (707) 827-7019 • Monday-Friday 7:30am-5pm PT • All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners. • firstname.lastname@example.org