Cloud. Artificial intelligence. Leading innovation. Elastic search. Buzz
Now that I got your attention with the industry buzzwords, I guess you’ve noticed that a word from the above does not fit with the others. It’s funny how I keep seeing over and over the same features displayed by tech houses, presented as innovation, breakthrough, leading platform, and so on.
One of our customers was telling me, during a conference: you guys are doing amazing tech stuff, too bad that you don’t talk about it louder. And while he was telling me this, I remembered there’s this movie that we’ve done a couple of years ago where our software architects were describing people in dcs+ as being programmers, engineers, techies. But, that’s just who we are (even the CEO of the company is a programmer). This is why we silently deliver pure innovation with each and every update to dcs+ customers in 55+ markets. Silent, because we think this is our job and we consider it normal to try being the best at what we’re doing. And we could present as Artificial intelligence the automatic mapping based on sound-alike algorithms, fuzzy search, with automatic scoring based on geolocation, name, address, but we would know it’s not right, it's not even machine learning (btw, dcs+ implemended automatic matching in TBS, a previous version of IRIX, back in 2007 ).
Now, after 17 years we have learned that there are no good /bad technology platforms. I’ve seen businesses with 30 MIL yearly revenue that were handled with excel or business that ran 500K EUR with fully automated processes. There’s no technology company that can offer the best solution for every problem. But the travel industry is huge and diverse, so you can say there’s an infinite market for any product.
Getting back to elastic search.
The other day I was talking to Alex Serban, lead programmer in Ionut Baches’s team. Curious as I am, I asked Alex: tell me something you’ve done recently, and you’re proud about it. And he started talking about one of our recent developments in TRIP, that came up as a response to this challenge: In TRIP, you have a module which lets you create an inventory of entities. These could be either boat trips, event tickets or venues, or anything else. Now of course, if you create an inventory module, you also need to create links between inventory items (like event venues for the tickets you are putting up for sale). And here you are faced with two options: you can either create a different module for each and every inventory type / customer segment or, you can create a framework that can handle every situation.
Guess what they choose.
Here comes the cool stuff – now, with an architecture that can accommodate an infinite number of entities, with an infinite number of properties and relationship between them you have a big problem with the response type in MySQL. Being a structured database, for complex interconnections you would receive the result of a query in minutes. Or you could build a different database for every entity. But then you would have a problem with the interconnection. Or you can create a different product for every project – and what happens when you want to upgrade the products? You’ll not be able to keep everything updated, as it should be. Totally unacceptable, said Alex (and I tend to agree). So they figured out a way in which each property added in admin in MySQL is replicated real-time into an Elastic Search database, where the information is stored in a different way and can be accessed a lot faster (doing my best here to translate from programming language to plain English). Won’t bore you with the details, but let’s say that a query that took about 3 mins now takes 100 milliseconds. That’s right, MILLISECONDS. Same happens with the filtering process: you would add a destination for an activity, like a city name. This information is added as text in the database, and the search for all the elements linked to that text are shown almost instantaneous.
[End of the geeky stuff]
Thing is, I have hundreds of examples like the one above. How many customers of dcs+ do you think are aware of this? I’ll tell you – none. They might see that they can add any type of event, boat trips or Formula one tickets with custom properties for each of them, and when searching for dynamic packages, the response of the database comes really fast.
But… that doesn’t sound so cool, does it?