Expletives deleted: how NoSQL is helping Ryanair change its customer service reputation

Budget airline deploys Couchbase to help it become more responsive to passengers' 'sob stories'

For a long time, budget airline Ryanair pursued an unusual approach to customer relations, with CEO Michael O'Leary's expletive-laden outbursts against the travelling public becoming the stuff of legend.

"You're not getting a refund so f**k off. We don't want to hear your sob stories. What part of 'no refund' don't you understand?" was a typical O'Leary response to a customer's complaint.

However, following a profit warning a couple of years ago, a chastened O'Leary used his undoubted gift for profanity to signal a change to a more conventional PR tack. The airline should try not to "unnecessarily piss people off", O'Leary said, and last year the company began to actively emphasise the merits of positive customer service: Ryanair really does want to hear customers' "sob stories" now, it seems. Customer as king not cattle.

"He's a sweetheart really - but don't write that," said senior software architect Paul Sheridan (pictured) of his CEO, going on to describe how IT is now at the forefront of the new approach.

"The development focus of 2015 is to find out how new technology can better help us communicate with the passenger. We want it to help us to respond to passenger queries and complaints," Sheridan told Computing.

These efforts centre on two things: first, enhancing the reservation system so that it collects more information about the customer and is also more responsive; and second, improving the Ryanair mobile app. There are also moves to integrate the company's IT estates, and to improve resilience by looking towards a multi-data-centre model.

Developer focus

Currently, reservations are handled by Navitaire, a hosted third-party system. While this works perfectly well for reserving flights, it does not allow for much extra passenger information to be collected, as required for Ryanair's new approach. Rather than rewriting the reservation system, the airline looked to create a parallel system that would allow more flexibility.

"We looked to write something independent of [Navitaire] whose primary focus is you the traveller, whether it's when you're in the planning stage of your holiday, while you are abroad or when you get home again," Sheridan said. "We will be in a position from a technology point of view to nip any issues you might have in the bud."

It will also allow the company to better segment its customer base according to where they habitually fly, what type of travel they undertake and other factors, so that information can be better tailored to the individual.

The new system will also help the developers to innovate. Being based on a relational database (SQL server), the hosted set-up is limiting in terms of the way the team works, Sheridan said.

"It's very rigid, is not very extendable and it's run by a third party. One of the real technical challenges was finding a data store solution that would help us leverage newer technologies."

His team settled on NoSQL as a data model for a number of reasons, one of the main ones being increased flexibility for developers.

"We have a huge UX [user experience] department now, and they come up with new ideas every day. We've moved to an Agile methodology and so we didn't want to be dependent on schema changes every other week. We want to put all that in the hands of developers. They work in independent teams and each document in a NoSQL data store is independent of the others and everything is reliant on the API," he explained.

Having investigated the main NoSQL players including MongoDB and Apache Cassandra, the airline eventually plumped for Couchbase because "it has a lot of features that fit our use case a bit better". One of the main ones was its distributed session management capabilities.

"Our current session management is active-passive. We wanted newer technology for when we arrive at a point where we need to operate more than one production data centre," Sheridan said.

"Traffic is increasing and our client-side applications are going to be a lot more chatty with a lot more communication with the servers, so soon we'll have a real need for another data centre. So Couchbase's cross-data-centre replication and rebalancing of nodes in production are a really nice feature."

Sheridan also hopes the reservation system will be speeded up by the new distributed management system, which should be up and running over the next few weeks.

"With the third-party reservation system the session itself can get a bit bloated," he said. "One of the technical challenges we face is distributing the session geographically across three locations, and what Couchbase allows is to do is not only serialise the .Net binary but the SDK allows us to swap out that transcode from the .Net binary to protobuf, which should lead to a huge benefit in terms of bandwidth and speed."

The mobile app

Like most airlines, Ryanair has an app that passengers can download on to their smartphones. However, the current one is unsatisfactory, according to Sheridan.

"The app we have at the moment is an HTML5 hybrid and there are real limitations in that. This month we're releasing native apps for Android and iOS," he said.

The new apps will make use of Couchbase Lite - an embedded JSON database that can work in isolation, on a peer-to-peer network or as a remote endpoint for Couchbase Server - and the firm's Sync Gateway. This allows the airline to preload some data on the passenger's device, based on their preferences or profile, with other information synched to the device when it is updated.

"Our typical passenger is, let's say, money conscious," said Sheridan, in a notably un-O'Leary-like manner.

"A lot of travel apps require you to be connected 100 per cent of the time, even when you're abroad. You may not have access to Wi-Fi, the service might be doggishly slow or you may be charged an outrageous rate for roaming. We wanted an app that is blazingly fast so a lot of the semi-static information [is preloaded]."

By static information he means the sort of thing that never really changes, such as the location of an airport. Other things that might be preloaded include relevant articles from the knowledge base.

"If we know you usually travel to London we won't bother pre-loading the app with information about other parts of Europe," Sheridan said.

"The name of an airport and its latitude and longitude are never going to change, but the destinations we fly to from that airport may change and we want you to have that information as soon as you fire up the app, but we still want it to be lightning quick."

Synching is a much better solution than caching for such use cases, he explained, and having a sync gateway that works "pretty much out of the box" was another feature that sold Couchbase to the airline. However, he said, Couchbase Lite still needs in-database encryption to fully meet his team's needs.

Sheridan's team has other plans for the architecture too, including allowing users to create their own local datasets and sharing them with other users via peer-to-peer connectivity, all with the goal of helping passengers to help themselves, via access to relevant information and allowing them to change travel plans - or even pass on their sob stories - wherever they are.