Another note linked to this: for results reasons, and eliminate competition problems when preserving nodes
we deferred the particular running off to Drupal’s queue system. That neatly eliminated competition circumstances around accessing nodes during node rescue and kept the consumer interface smooth and receptive.
There was clearly another requirement: because the incoming facts is often unfinished we needed seriously to in addition transfer facts from RottenTomatoes.com. Regarding we created a two layer program: a person is an universal PHP package using the Guzzle library that shown Rotten Tomatoes contents as PHP objects, whilst the various other then links that program to generate Drupal nodes filled from Rotten Tomatoes data. We then harmonized Rotten Tomatoes films and studies because of the customer’s origin facts and permitted editors to elect to use facts from Rotten Tomatoes in support of their very own in which appropriate. That information was merged in through the indexing processes too, very when data is in Elasticsearch no matter in which it originated from. We also revealed Critic Reviews to Elasticsearch at the same time to ensure that clients solutions could discover product reviews of movies and user ranks before buying.
Incoming demands from customer solutions never ever hit Drupal. They merely ever strike the Silex application machine.
The Silex application doesn’t need accomplish a lot. For all the line format we selected the Hypertext software code, or HAL. HAL is an easy to use JSON-based hypermedia structure used by Drupal 8, Zend Appagility, among others, and it is an IETF draft specs. In addition features a rather sturdy PHP collection offered we managed to need. Since Elasticsearch already storage and profits JSON it was trivial to map things from Elasticsearch into HAL. The heavy-lifting ended up being simply in deriving and connecting the appropriate hypermedia links and embedded standards. Keyword and other browse inquiries happened to be merely passed to Elasticsearch and the outcome used to load the right registers.
Ultimately, we covered the HAL item up in Symfony’s feedback item, ready our HTTP caching parameters and ETags, and sent the message returning.
A big benefit of the split-architecture is the fact that rotating up a brand new Silex instance try insignificant. There isn’t any important arrangement beyond identifying the Elasticsearch machine to utilize, and a lot of laws was yanked down via Composer. That means rotating up multiple cases of the API host for redundancy, high-availability, or show was which has no operate. We failed to need certainly to stress, however; the API try read-only, so with proper use of HTTP headers and an elementary Varnish servers facing they the API try interestingly snappy.
A big part of Drupal’s readiness as a CMS try recognizing it isn’t the be-all end-all answer to all trouble.
For Ooyala and its customers, Drupal was ideal for managing content, however for providing a web site API. Happily, Palantir’s understanding of the future Drupal 8 production and its particular dependence on the Symfony pipeline permit us to set Drupal with Silex – which can be perfect for serving a web site API however all those things hot for handling and curating material. Finally, Palantir chose the proper device for the job, additionally the job gained using this significantly.
Ooyala presently has a strong and trustworthy API that will be able to offer client software we never even handled our selves; Ooyala’s customers see what they want; end users have actually an easy and receptive Web provider powering her media solutions. Furthermore, Palantir encountered the chance to become all of our palms dirty with another member of the Symfony group – an investment that may pay long-lasting with Drupal 8 therefore the growing interest in Symfony around the PHP ecosystem.
Just the thing for Ooyala; ideal for Palantir; great for the city.
Image by Todd Lappin “Above Suburbia” under CC BY-NC 2.0, altered with greeen overlay plus the choice of arrows.