Read Java Reactive Programming - Effective Usage in a Real World Application

Java Reactive Programming - Effective Usage in a Real World Application

This article presents how trivago's search backend team used reactive programming in Java effectively when designing and implementing one of our many Java backend services. Compared to traditional imperative and functional programming, reactive programming requires a mindset-shift in order to apply the concepts and techniques effectively. The benefits we gain support us in some key challenges that every engineer is facing with essentially every (micro-) service in today’s backend architectures: handling of blocking IO, backpressure, managing highly varying loads as well as message and error propagation.

Read Reactive Programming - The Price You Have To Pay For A Responsive Backend

Reactive Programming - The Price You Have To Pay For A Responsive Backend

In the trivago backend, we use the reactive programming pattern for fetching prices from advertisers and updating our caches. This helps us to increase the responsiveness (i.e., scalability and resilience) of our backend. Thus, our backend system can alleviate high response times from internal components and our advertisers while staying responsive, even if downstream components fail entirely. Here is how we use the Java library Reactor Core to ensure those guarantees:

Read Rethinking the Next-gen Analytics Web App at trivago

Rethinking the Next-gen Analytics Web App at trivago

After almost a decade, we decided to rebuild our in-house Business Intelligence web application to better support the organization. It is always challenging to replace software with a long history and a high degree of complexity. Nevertheless, we successfully completed the project because we fundamentally challenged and re-thought all aspects of the project.

Read How To Get Fooled By Metrics

How To Get Fooled By Metrics

Metrics are one of the main building blocks in the topic of observability.

Hence, we have a lot of metrics within our applications and especially for the connections between our applications. Every outgoing request has its latency measured and we also record the sizes of the request and the response. These numbers are collected in histograms and based on that data, in our Grafana graphs, we create corresponding graphs that show us e.g. the median size of request- and response payloads or the 99th percentile of call durations.

Read Deep Dive Into Data Science at trivago

Deep Dive Into Data Science at trivago

What does Data Science at trivago look like in practice? Which major challenges have we encountered as a travel-tech company since the COVID-19 outbreak? What's it like to work in Data Science at trivago? In this Q&A with James Neaves (Business Intelligence Lead), Andrea Fernandez (Data Science Team Lead), and Sheetij Jain (Product Manager in User Profiling) we'll answer all these questions and more.

Beyond trivago Tech Pt.1: Side-Projects from Our Developers

Fanatic learning is one of trivago's core values that forms a fundamental part of our engineering culture. It's very valuable to have curious minds around you that connect the dots to come up with new ideas and love to exchange knowledge on various topics. Since many of our engineers are involved in their own initiatives and projects outside work, we decided to introduce you to some of these side projects. The goal is to recognize their achievements and share their knowledge with our broader tech community. Take a look and feel free to reach out to any of them if you'd like to exchange on any of their topics!

Read How Working as a Product Owner Helped Me Be a Better Engineer (and vice versa)

How Working as a Product Owner Helped Me Be a Better Engineer (and vice versa)

Over the past few months, I was given the opportunity to try out the life of a Product Owner (PO), alongside retaining my responsibilities as an engineer. The life of a PO has always intrigued me since I joined trivago 2 years ago, and I always found myself unofficially taking on roles that were traditionally done by them. Things like reaching out to stakeholders for collaboration, thinking about KPIs and impact, and general "aligning". Perhaps it's because I simply love the sound of my own voice, but I've always felt a particularly high level of gratification from contributing in meetings. "Aligning" is an overused word in the workplace, but it is the best to describe where I derive my professional gratification from, outside of building things with code.

Read trivago Tech Check-in: Meet Fabian

trivago Tech Check-in: Meet Fabian

In our new series, trivago Tech Check-in, we're introducing you to some of our tech talents from across the globe who help keep our metasearch engine running smoothly everyday. In this first edition, you'll meet Fabian Fritzsche, an engineering intern that works on the Microservice-System that feeds our GraphQL API with up-to-date hotel data.

Read Google Cloud Workload-Placement-Guide

Google Cloud Workload-Placement-Guide

At trivago we operate a hybrid infrastructure of both on-premise machines and clusters on Google Cloud. Over time, we came up with a set of deployment guidelines for running our workloads as more and more of them are migrating to Google Cloud. These are not strict rules, but rather suggestions to best serve each team's needs.

Read Interview for BrowserStack's Breakpoint 2020 Conference

Interview for BrowserStack's Breakpoint 2020 Conference

After 15 years as a game/application developer and trainer, Benjamin decided to make test automation his career. He's currently a Test Automation Engineer in trivago's core QA team. Benjamin is also the author and maintainer of two open source projects for Cucumber BDD parallel test execution and reporting. He is an occasional speaker at conferences on testing and automation.

Read Cross-Cluster Traffic Mirroring with Istio

Cross-Cluster Traffic Mirroring with Istio

The price of reliability is the pursuit of the utmost simplicity.
— C.A.R. Hoare, Turing Award lecture

Have you ever enthusiastically released a new, delightful version to production and then suddenly started hearing a concerning number of notification sounds? Gets your heart beating right? After all, you didn't really expect this to happen because it worked in the development environment.