Another mention about this: for overall performance factors, and to eliminate race problems when save nodes

we deferred the exact control to Drupal’s waiting line system. That neatly eliminated race conditions around being able to access nodes during node protect and kept the consumer screen rapid and responsive.

There clearly was another prerequisite: ever since the incoming information ended up being usually partial we had a need to in addition import information from Regarding we developed a two level program: a person is a general PHP plan using the Guzzle collection that shown Rotten Tomatoes articles as PHP items, whilst the different after that links that program to generate Drupal nodes inhabited from Rotten Tomatoes facts. We next harmonized Rotten Tomatoes flicks and studies making use of the client’s supply data and enabled editors to elect to use information from Rotten Tomatoes in support of their own in which appropriate. That information is merged in during the indexing procedure too, thus when data is in Elasticsearch no matter in which they originated from. We also uncovered Critic Studies to Elasticsearch at the same time with the intention that customer applications could read critiques of motion pictures and individual rankings before buying.

Incoming needs from client programs never ever struck Drupal. They merely ever before strike the Silex app machine.

The Silex software doesn’t even have doing much. The cable format we picked the Hypertext Application words, or HAL. HAL was a very simple JSON-based hypermedia structure utilized by Drupal 8, Zend Appagility, as well as others, and is also an IETF draft specification. In addition, it provides a very strong PHP library readily available that people had the ability to make use of. Since Elasticsearch already sites and returns JSON it was insignificant to map things from Elasticsearch into HAL. The hard work had been just in deriving and connecting the best hypermedia website links and embedded prices. Keyword along with other browse inquiries were merely passed away through to Elasticsearch additionally the listings always load the correct records.

Finally, we wrapped the HAL item up in Symfony’s impulse item, ready our HTTP caching variables and ETags, and delivered the message on its way.

A big advantage of the split-architecture would be that spinning up another Silex case is trivial. There is absolutely no meaningful configuration beyond distinguishing the Elasticsearch server to use, and most laws is pulled down via Composer. Which means spinning up multiple cases of the API host for redundancy, high-availability, or show is actually basically no work. We did not have to be concerned, however; the API was read-only, therefore with appropriate utilization of HTTP headers and an elementary Varnish servers facing it the API try surprisingly snappy.

The Upshot

A huge section of Drupal’s maturity as a CMS was recognizing that it isn’t the be-all end-all reply to all troubles.

For Ooyala and its customers, Drupal had been just the thing for managing content, although not for offering a web API. Luckily, Palantir’s understanding of the upcoming Drupal 8 production as well as its dependence from the Symfony pipeline let’s set Drupal with Silex – and is just the thing for helping a Web API although not all those things hot for dealing with and curating content. Finally, Palantir find the right tool for the task, additionally the project gained from this greatly.

Ooyala now has a robust and dependable API definitely able to serve customer programs we never actually moved ourselves; Ooyala’s customers see what they want; end users bring a fast and responsive Web service running their unique mass media solutions. Additionally, Palantir encountered the opportunity to have all of our arms dirty with another person in the Symfony families – a good investment which will pay back long-term with Drupal 8 and expanding popularity of Symfony inside the PHP environment.

Just the thing for Ooyala; ideal for Palantir; just the thing for the community.

Picture by Todd Lappin “Above Suburbia” under CC BY-NC 2.0, changed with greeen overlay together with choice of arrows.