Red Carnation Hotels are a collection of family-run, award-winning boutique hotels in the UK, Ireland, South Africa, Switzerland and the USA. Each hotel is a landmark of history and tradition; from the magnificent Ashford Castle in Ireland, to the Milestone, a historic mansion hotel in the heart of London, to the truly iconic Oyster Box in South Africa – the hotels are unique and characterful with a personal approach to hospitality.
With an exceptional reputation for exquisite fine dining, leading spas and sumptuous surroundings, great pride is taken in delivering warm, thoughtful and highly personalised service to create wonderful, memorable experiences for guests. Everyone in the Red Carnation Hotels family, from the chefs and sommeliers to reception staff and concierge, exudes passion and enthusiasm to support the philosophy, “No request is too large, no detail too small”.
Red Carnation Hotels are a compassionate organisation that care about its people, sustainability and the environment. Committed to local communities and dedicated to social responsibility, Red Carnation actively support a wide range of charities, preservation, nature, heritage and green initiatives.
Red Carnation Hotels has been a fascinating website to work on, like most clients their particular passion is always interesting to see and understand. The website was built in-house and Sagittarius inherited it and started a raft of BAU, Prog Dev and so on. This led to numerous improvements such as:
- improved website page loading speed
- improve site rankings from organic search
- improve cross-site browsing and sales opportunities
- improved site stability
- enabled personalisation
- connection with the booking engine using FXM
- improved personalisation
- integration with Akamai
RCH was originally built on Sitecore 7 and we went through the process of upgrading to Sitecore 8. As is usually the case the migration of content and upgrading the Sitecore system was relatively straightforward. However due to the way the original site was built this had a massive impact on the speed of the upgrade. The original developers before we took ownership of the site, had put into place numerous Sitecore hacks. This had a large impact on the client as we made up for this technical debt. That said they can now take advantage of all the great improvements from a 7 to 8 upgrade and the system should be easier to upgrade to Sitecore 9 in the future.
We had a rather interesting experience with Dictionaries on RCH. The original site developers used C# Dictionaries for storing site settings (among other things). Putting aside they didn't put any caching on such an important layer. We noticed that the servers were starting to run into problems. You would see that a portion of the CPU would be stuck in use, inspecting the IIS Worker Process showed that there was a runaway thread. For a while, you wouldn't notice as it would be a single core of the CPU. Until eventually all the cores had a runaway thread and the entire system hung. This was tracked down to the aforementioned site settings system. The reason for this problem was concurrency, What this means is that if two pieces of code access dictionaries at nearly the same time you get a situation like this.
User 1: Find X in the dictionary - system says the item exists in the dictionary and starts searching for it.
User 2: Delete X from the dictionary.
User 1: continues to search for the item forever because it's been deleted in the meantime and will never find it.
This type of thing is one of the reasons that Sagittarius, for the most part, has a ban on While and Do loops in code. But this was a bug inside the .NET framework itself. We got around it by additional caching on the settings system and by swapping out the dictionaries for Concurrent Dictionaries.
Microsoft AI Chat Bot
I was asked to do a prototype of integrating Sabre Synxis http://www.sabrehospitality.com/ into a Microsoft AI Bot. This involved creating an initial version of a LUIS (Language Understanding Intelligence Service) framework to understand what the user wanted to do. An initial connection to the Synxis API and creating a simple Bot itself.
You can see a simple version of this on this link Bot Video.
As part of a three-day session with Microsoft, this was continuously improved with tightly coupled integrations with Sitecore analytics and data driven from the Sitecore CMS.
You can see an excellent slide deck for some of this here.