Another mention related to this: for results explanations, and eliminate battle conditions whenever saving nodes

we deferred the particular handling off to Drupal’s queue system. That neatly stopped race ailments around being able to access nodes during node salvage and stored the consumer interface fast and responsive.

There was one other needs: considering that the arriving facts got typically partial we must also import data from For the we constructed a-two coating program: you’re a simple PHP bundle utilizing the Guzzle collection that indicated Rotten Tomatoes contents as PHP things, whilst various other after that bridges that system to generate Drupal nodes filled from Rotten Tomatoes information. We after that harmonized Rotten Tomatoes films and ratings making use of customer’s supply information and permitted editors to decide to use information from Rotten Tomatoes and only their very own where appropriate. That information is merged in while in the indexing procedure nicely, very when data is in Elasticsearch no matter in which it originated. We also revealed Critic ratings to Elasticsearch nicely so clients solutions could see analysis of motion pictures and user ranks before you buy.

Incoming requests from client solutions never hit Drupal. They merely actually ever hit the Silex app server.

The Silex app does not have accomplish a great deal. The wire format we selected the Hypertext program vocabulary, or HAL. HAL try a very simple JSON-based hypermedia structure utilized by Drupal 8, Zend Appagility, yet others, and is an IETF draft specification. In addition it provides a really strong PHP library readily available we could actually utilize. Since Elasticsearch currently storage and profits JSON it was insignificant to map things from Elasticsearch into HAL. The heavy lifting had been only in drawing and affixing the best hypermedia website links and embedded standards. Key phrase and various other lookup queries were just passed away to Elasticsearch and also the listings familiar with weight the best reports.

At long last, we wrapped the HAL item up in Symfony’s responses object, ready our very own HTTP caching parameters and ETags, and sent the content returning.

A huge advantage of the split-architecture would be that rotating up a fresh Silex instance is insignificant. There isn’t any important configuration beyond pinpointing the Elasticsearch machine to utilize, and a lot of laws is yanked down via author. Which means spinning up numerous instances of the API servers for redundancy, high-availability, or results was without any services. We did not need to stress, however; the API try read-only, therefore with correct usage of HTTP headers and an elementary Varnish servers before they the API try interestingly snappy.

The Upshot

A large section of Drupal’s readiness as a CMS try realizing it isn’t the be-all end-all response to all dilemmas.

For Ooyala as well as its consumers, Drupal had been ideal for dealing with content, not for serving a web site API. Thank goodness, Palantir’s comprehension of the future Drupal 8 launch and its dependence regarding the Symfony pipeline lets pair Drupal with Silex – and that’s great for serving a Web API but not everything hot for managing and curating content material. Finally, Palantir chose the right tool to do the job, and project benefited out of this greatly.

Ooyala now has a robust and dependable API that’s capable provide clients solutions we never ever also moved ourselves; Ooyala’s people get what they want; end users posses a quick and receptive internet provider powering their particular mass media solutions. Also, Palantir met with the possible opportunity to become all of our fingers dirty with another person in the Symfony parents – a good investment that may pay off long-lasting with Drupal 8 plus the growing interest in Symfony inside the PHP ecosystem.

Perfect for Ooyala; great for Palantir; an excellent option for town.

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

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.